0
私は以下のコードのためのコマンドが見つからないエラーを取得しています:問題| bashの
#!/bin/sh
#set -x
for i in `cat output`;
do
eval "MASTER_$i = $(/usr/efm-2.0/bin/efm cluster-status $i 2>/dev/null |grep "Master" |head -1 |awk -F " " {'print$2'})";
echo -e "$MASTER_$i";
done
デバッグ出力は、次のとおりです。
./test.sh ++ cat output +for i in '`cat output`' ++ /usr/efm-2.0/bin/efm cluster-status abc ++ grep Master ++ head -1 ++ awk -F ' ' '{print$2}' +eval 'MASTER_abc = 10.x.x.x' ++ MASTER_abc = 10.x.x.x **./test.sh: line 5: MASTER_abc: command not found** +echo -e abc abc
をところで:私は 'while'ループを使用することをお勧めします。 – Cyrus
ファイルの行を反復処理しているわけではありません。ファイルの内容がパス名展開の対象となっているため、空白で区切られた単語を繰り返し処理しています。 [Bash FAQ 001](http://mywiki.wooledge.org/BashFAQ/001)を参照してください。 – chepner