Next: test invocation, Previous: false invocation, Up: Conditions [Contents][Index]
true
: 何もせず、正常終了するtrue
は、実行に成功したこと (success)
を示す終了ステータス 0 を返す以外、何もしない。
従って、シェルスクリプト中の、実行に成功するコマンドが必要な場所で、
仮のコマンドとして使用することができる。とは言え、シェルの組み込みコマンド
:
(コロン) の方が、同じことをより高速に実行してくれるかもしれない。
最近のほとんどのシェルでは、true
は組み込みコマンドになっているので、
スクリプト中で ‘true’ を使う際に使用しているのは、ここで説明している
‘true’ ではなく、たぶん組み込みコマンドの方である。
true
は、--help と --version オプションを認識する。
もっとも、true
を 0 以外のステータスで終了させることも可能だということも、
心に留めておいていただきたい。--help や --version
を使用したとき、標準出力がすでにクローズされていたり、
I/O エラーを引き起こすようなファイルにリダイレクトしたりすると、そういうことが起きる。
たとえば、Bourne 互換のシェルを使用して、次のようにするときだ。
$ ./true --version >&- ./true: write error: Bad file number $ ./true --version > /dev/full ./true: write error: No space left on device
このバージョンの true
は、C のプログラムとして実装されている。
従って、シェルスクリプトによる実装より安全かつ高速であり、
アカウントを無効化するための安全なダミー・シェルとして使用することができる。