Next: , Previous: false invocation, Up: Conditions   [Contents][Index]


16.2 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 のプログラムとして実装されている。 従って、シェルスクリプトによる実装より安全かつ高速であり、 アカウントを無効化するための安全なダミー・シェルとして使用することができる。