| 真実 | |
|---|---|
| 初回リリース | 1979年1月 (1979年1月) |
| オペレーティング·システム | UnixおよびUnixライク |
| プラットフォーム | クロスプラットフォーム |
| タイプ | 指示 |
trueおよびは、それぞれ終了ステータス0または1で直ちに終了するシェルコマンドfalseです。スクリプトはプロセスの終了ステータスを最後に実行したコマンドの値に設定するため、これらのコマンドを使用してスクリプト実行の終了ステータスを設定できます。すべてのUnixシェルは、終了ステータスが0の場合は成功、0以外の場合は(通常は)失敗と解釈するため、 は成功を設定し、は失敗を設定します。[注 1 ]truefalse
コマンドはUnix 系オペレーティング システムで使用できます。
使用
コマンドは通常、シェルスクリプトの条件文やループで使用されます。例えば、次のスクリプトは中断されるまで繰り返し実行されます。 echo hello
trueの場合、echo、 hello、 done次の例のように、これらのコマンドを使用すると、他の一連のコマンドの成功または失敗を無視できます。
… && を偽にする/etc/passwdでユーザーのログインシェルをfalseに設定すると、対話型シェルへのアクセスは事実上拒否されますが、そのアカウントはFTPなどの他のサービスに対しては引き続き有効です。(ただし、セッションを終了する前に通知を出力する/sbin/nologin が使用可能な場合は、これの方がこの目的に適している可能性があります。)
プログラムは、GNUバージョンが標準--helpおよび--versionオプションを受け入れることを除いて、コマンドライン引数を受け入れません。
ヌルコマンド
trueコマンドは、非常によく似た null コマンド[ 1 ]に置き換えられることがあります。null コマンドは単一のコロン ( :) で表されます。null コマンドはシェルに組み込まれているため、 trueが外部プログラム ( trueは通常シェルに組み込まれた関数)である場合は、より効率的です。上記の例は、:の代わりにを使って書き直すことができますtrue。
while : do echo hello doneヌルコマンドはパラメータを取ることができますが、パラメータは無視されます。また、パラメータ展開形式を介してシェル変数にデフォルト値を割り当てるなどの副作用をもたらす、何も実行しないダミーコマンドとしても使用されます。[ 2 ]例えば、Bashのバグ報告スクリプトであるbashbugでは、次のようになります。 ${parameter:=word}
: ${ TMPDIR :=/tmp } : ${ EDITOR = $DEFEDITOR } : ${ USER = ${ LOGNAME - ` whoami ` }}ヌルスマイリー
または をtrueの:代わりに使用できるため、次の 3 つの「null スマイリー」があります。 cat/dev/null
:>- ファイルを作成するか、既に存在する場合は空にします。:>>- ファイルが存在しない場合は作成しますが、touch既存のファイルのタイムスタンプは変更されません。:|- の代わりに使用できます< /dev/null
このような使用法は、 IEFBR14の標準的な使用法 に似ています。
参照
- IEFBR14 – IBMメインフレーム上の「何もしない」プログラム
- POSIXコマンドのリスト
- 二値論理 – 真か偽かの2つの値を持つ古典的な論理リダイレクト先の簡単な説明を表示するページ
注記
参考文献
外部リンク
- : 真の値を返す – シェルおよびユーティリティリファレンス、The Single UNIX 仕様、バージョン5、The Open Group
- : false 値を返す – シェルおよびユーティリティ リファレンス、The Single UNIX 仕様、バージョン 5、The Open Group