、あなたは主にこのアプローチを参照してください。あなたが実装されるべきか、無限ループを見てみると対「真しばらく」
while :
do
# loop infinitely
done
をしかし、私はちょうどここ:
の使用を理解していません。
while true
do
# loop infinitely
done
?マニュアルから
、あなたは主にこのアプローチを参照してください。あなたが実装されるべきか、無限ループを見てみると対「真しばらく」
while :
do
# loop infinitely
done
をしかし、私はちょうどここ:
の使用を理解していません。
while true
do
# loop infinitely
done
?マニュアルから
:
:[引数] 影響なし。引数を展開して指定された リダイレクトを実行する以外には何も実行しません。ゼロ終了コードが返されます。
これは、したがって、常にゼロを返しているように、この答えをtrue
として使用することに似てチェックアウトされていますWhat Is the Purpose of the `:' (colon) GNU Bash Builtin?
コロンは何もしませんbuilt-in commandですが、0(成功)を返します。したがって、同じことをする実際のコマンドを呼び出すよりも短く(そして速く)なります。
それは本当です。 'i = 0;真実の間にdo((i ++> 100000))&& break; done "はコロンバージョンよりもわずかに長くかかる。 –
違いは、コマンドと組み込みコマンドの両方が組み込みであるため、コマンドと組み込みコマンドとは関係ありません。純粋にbashが扱っている追加の文字数です。 ':'を使用している間に ''何かばかげた ''は、 ''真っ込んでいるよりも遅いです。これを 'while/bin/true'のような外部コマンドと比較すると、文字通り何百倍も遅くなります。 –
私はこの質問を赤文字の後に '真実 'と' while 1'の違いで見つけました。明らかに 'cd 'に' 1'がエイリアシングされていました。これを試した後気付いた:普通のルールが ':'に当てはまるので、セミコロンで終わらせる必要があります(あるいは、このようなケースでは改行しないでください。したがって、1つのライナーでは、while:と書くことになります。行う ...; while:\ n do ... \ n done'とは対照的に、「done」と表示されます。本当にこれはほとんど警告ではありません。 –
':'の後にコロンは必要ありません。 ':'は構文ではなくコマンドです。 – chepner