2012-05-29 4 views

答えて

51

:[引数] 影響なし。引数を展開して指定された リダイレクトを実行する以外には何も実行しません。ゼロ終了コードが返されます。

これは、したがって、常にゼロを返しているように、この答えをtrue

として使用することに似てチェックアウトされていますWhat Is the Purpose of the `:' (colon) GNU Bash Builtin?

17

コロンは何もしませんbuilt-in commandですが、0(成功)を返します。したがって、同じことをする実際のコマンドを呼び出すよりも短く(そして速く)なります。

+1

それは本当です。 'i = 0;真実の間にdo((i ++> 100000))&& break; done "はコロンバージョンよりもわずかに長くかかる。 –

+12

違いは、コマンドと組み込みコマンドの両方が組み込みであるため、コマンドと組み込みコマンドとは関係ありません。純粋にbashが扱っている追加の文字数です。 ':'を使用している間に ''何かばかげた ''は、 ''真っ込んでいるよりも遅いです。これを 'while/bin/true'のような外部コマンドと比較すると、文字通り何百倍も遅くなります。 –

+0

私はこの質問を赤文字の後に '真実 'と' while 1'の違いで見つけました。明らかに 'cd 'に' 1'がエイリアシングされていました。これを試した後気付いた:普通のルールが ':'に当てはまるので、セミコロンで終わらせる必要があります(あるいは、このようなケースでは改行しないでください。したがって、1つのライナーでは、while:と書くことになります。行う ...; while:\ n do ... \ n done'とは対照的に、「done」と表示されます。本当にこれはほとんど警告ではありません。 –

関連する問題