一行コマンドの用途は何ですか?

一行コマンドの用途は何ですか?

;次の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奇妙に見えるので、常に奇妙だと思いました。しかし、あなたはそれに慣れるでしょう。

関連情報