0

forループを使用して単純なbashスクリプトを試していますが、次のエラーが発生し続けます。

'/test.sh: line 2: syntax error near unexpected token `do
'/test.sh: line 2: `do

以下は使用されているコードです...

for animal in dog cat elephant
do
    echo "There are ${animal}s.... "
done

しかし、他のマシンで試してみたところ、問題なく動作しています。助けてください。

4

1 に答える 1

3

スクリプトtest.shには、Windows スタイルの行末があります。シェルは、各\r\nシーケンスを\r行末の文字として認識します。

do\rというよりシェルが見えていdoます。行の先頭にカーソルを送信するため\r、行の先頭に引用符が表示されます。試す

./test.sh 2>&1 | 猫-A

エラーメッセージの実際の内容を確認します。

行末を修正するtest.shなどの方法でスクリプトをフィルタリングします。dos2unix(必ず最初にマニュアル ページを読んでください。dos2unixほとんどのテキスト フィルタとは異なり、 は入力ファイルを上書きします。)

これは、Cygwin でよくある問題です。Windows エディターを使用してスクリプトを作成しましたか?

于 2012-07-11T22:47:17.817 に答える