;
次の1行スクリプトでは、これはどういう意味ですか?
while true; do sudo -n true; sleep 60; kill -0 '$$' || exit; done 2>/dev/null &
これは改行または「次のコマンド」を意味しますか?
答え1
コマンドの区切り記号です。最初のケースでは、文の終わりだと思う方が良いですwhile
。
たとえば、特定のコマンドが成功したときに繰り返しを実行するには、次のようにします。
while test -f /foo; do some_command; done`
セミコロンは引数の終わりを示すために使用されますtest
。それ以外の場合はdo
別の引数と見なされますtest
。
ただし、セミコロンの代わりに改行を使用できます。以下は、セミコロンなしで上記の例とまったく同じです。
while test -f /foo
do
some_command
done
実際にbashの場合は、上記のコマンドを実行し、完了後(またはCTRL + C)履歴に戻る(上矢印キーなど)、複数行のコマンドの代わりにセミコロンを使用してください。
if
はい。構文はwhile
一般的なシェルの動作と似ており、中断されます。
私は個人的に構文がdo
奇妙に見えるので、常に奇妙だと思いました。しかし、あなたはそれに慣れるでしょう。