2011-08-15 13 views
3

debian bashコマンドラインでfor文を実行すると問題なく動作します。 しかし、shスクリプトで実行するか、bashコマンドで実行すると、予期せぬトークン `do 'の近くでエラーが報告される" 違いはどこですか?コマンドラインでbash forループが動作しますが、スクリプトで失敗しました。

[[email protected]] ~/tmp $ for i in {1..10}; do echo $i; done 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
[[email protected]] ~/tmp $ bash for i in {1..10}; do echo $i; done 
-bash: syntax error near unexpected token `do' 

私はすべてcentos enviormentでうまく動作します。

答えて

0

すべてのスクリプトは、逆順のカンマまたはファイルで囲むことができます。ここでは、bash for i in {1..10}、次になどとしています。ファイルに入れない場合は、-cオプションを使用する必要があります。

3

あなたのbashコマンドラインは、最初のもので終わります。

ので、それは次のように個別に実行されます:

bash for i in {1..10}; 
do echo $i; 
done 

とman bashはコマンドの引数は、負荷へのファイルでなければなりませんと言います。bash [オプション] [ファイル]

6

をbashが読むよう-cオプションを使用しますあなたが渡す文字列からのコマンド。また、コマンドの前後に一重引用符を使用します。

bash -c 'for i in {1..10}; do echo $i; done' 
関連する問題