真と偽(コマンド)

真実
初回リリース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つの値を持つ古典的な論理リダイレクト先の簡単な説明を表示するページ

注記

  1. ^これらは、古典論理やほとんどの汎用プログラミング言語における真理値(真(1またはT)偽(0または⊥))とは異なります。組み込み関数が終了ステータスを設定し、プログラムがそれを返すことで、同じ効果が得られることに注意してください。truetrue

参考文献

  1. ^ "Colon"The Open group base specifications、第7号、IEEE std 1003.1-2008、2014年4月27日時点のオリジナルよりアーカイブ、 2011年8月4日取得
  2. ^ Cooper, Mendel (2011年4月)、「Nullコマンド」Advanced Bash-scripting guide、6.3、Linuxドキュメンテーションプロジェクト、2019年6月3日時点のオリジナルからアーカイブ、 2011年8月4日取得

マニュアルページ