私のスクリプトでエラーが発生するのはなぜですか?

私のスクリプトでエラーが発生するのはなぜですか?

次のbashスクリプトはエラーを示しています。これらのエラーをどのように克服できますか?

#!/cpd/misc/bin/bash
while[1];
do date "+%T";
sleep 60;
done

間違い:

./bash1.sh: line 2: while[1]: command not found
./bash1.sh: line 3: syntax error near unexpected token `do'
./bash1.sh: line 3: `do date "+%T";'

答え1

いくつかのエラー:

  • while条件の前後にスペースが必要です。
  • [1]bashでは間違っています。おそらく真理値が1のものを使いたいと思うでしょう。その場合は、:またはを使用してくださいtrue。これらの2つが最も一般的で読みやすいです。
  • ;また、コマンドは改行で区切られているため、各行の末尾にsを追加する必要はありません。

だからあなたはこれを行うことができます:

#!/cpd/misc/bin/bash
while :
do 
    date "+%T" 
    sleep 60
done

答え2

whileその後は空白が必要です。

しかし、あなたはどう思いますか[1]?名前付きファイルが存在する場合は1一致するため、bashはそれを確認しますwhile 11実行可能ではなく$ PATHに存在すると失敗します。そうでなければ、1bashは実行しようとし、[1]実行可能なスクリプトとプログラムの名前を賢く指定する人がいないので、おそらく再び失敗します[1]

関連情報