2016-07-27 20 views
-1

以下のようにコードを実行しようとしましたが、エラーが表示されます:4,5,6行目にコマンドが見つかりません。質問についても同様の回答を見つけようとしましたが、このスクリプトを実行しているImのクラスタOSのバージョンを把握する方法はわかりません。最初の行または4,5,6行に何か問題があるかどうかはわかりません。誰でも助けてくれますか?bashスクリプト:コマンドが見つかりません

#!/bin/bash 
for i in 02 03 04 05 06 07 09 10 11 12 13 14 15 16 17 20 21 22 23 24 25; do 
x=grep $i sphnum.txt |cut -c5-6 
y=grep $i sphnum.txt |cut -c8-9 
z=echo $i'.ala.'$x'.sph '$i'.ala.'$y'.sph' 
echo $z 
done 
+0

最後の変数zは、これらの文字列を文字列にコンビネーションするためのものです。 – SIMONSON92

+0

'x = grep $ i sphnum.txt | cut -c5-6'を' x = $(grep $ i sphnum.txt | cut -c5-6) 'に置き換えてください。他の2行についても同様です。 – yellowantphil

+0

あなたは '$ i'という名前のコマンドを実行しようとしています。 '$(...)'は、bashをサブコマンドとして実行させます。 bashのmanページの「Command Substituion」を参照してください。 – yellowantphil

答えて

0

他の人は、コマンドの出力をキャプチャする必要があると言いました。

z=echo foo -bash: foo: command not found

それはfooがコマンドであると考えて有効ではありません

z=echo foo

と同等だ最初のもので

z=$(echo foo)

と同じではありません。

z=$(echo foo)ただし、echo fooを実行して、出力をzに取り込むことを意味します。

すべてのコマンドがこれを実行できません。

関連する問題