1. ホーム
  2. シェル

Linuxシェルプログラミングのエラー "bad substitution "の解決法

2022-02-08 09:22:43
<パス

:bad 置換エラー

は、変数名のタイプミスで、置き換えに対応する値のペアが見つからず、直接エラー結果を報告する必要があります。
置換された${}変数を全文で取得し、修正します。


Linuxのシェルスクリプトを使ってテキストを出力し、エラーを報告するRプログラムを生成してみた。
/mnt/bai/yongxin/bin/ternary_16s.sh: 1行目。# 説我第一行就有错误,因输出多行,内部出错,无法檢查错误所;我最终使用以行逐行/段添加的方法,逐渐缩小误范围找到报错误行(原文有几百行,找了一百多行才找到试十次) . 行は、本文中で複数の変数を持つ変数です。この行は、本文中の変数で、${height }のように余分なスペースがあるもので、本来は${height}とすべきものでした。次回は、注意して変数を直接探して、すぐに修正しましょう。

cat <<END >otu_ternary.r

#############################################################
# Title: Didfferent abundance OTU -- Tenary plot
# Author: Yong-Xin Liu
# E-mail: [email protected]
# Date: 2017/6/21
# Update: 2017/6/21
# Description: Script to draw tenary plot
# Input File required in the blow list: 
# Need DA_OTU to calculate the difference OTU results between groups
# 1. "... /doc/design.txt" Design of experiment
# 2. "otu_table.txt" OTU table, better include taxonomy
# 3. "... /doc/group_tern.txt" ternary list
# Group A/B/C lie in left, right and top of triangle
#############################################################
  pdf(file=paste("ter_",tern[1],tern[2],tern[3],".pdf", sep=""), height = ${height }, width = ${width})
  tern_e(per3lg[,1:3], prop=T, col=per3\$color, grid_color="black", labels_color="transparent", pch=19, main=" Tenary Plot")
  dev.off()

END