次の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 1
。1
実行可能ではなく$ PATHに存在すると失敗します。そうでなければ、1
bashは実行しようとし、[1]
実行可能なスクリプトとプログラムの名前を賢く指定する人がいないので、おそらく再び失敗します[1]
。