false コマンド

入力に関係なく失敗の終了ステータス(1)を返します。

概要

false コマンドは、失敗の終了ステータス(1)を返す以外は何もしないシンプルなユーティリティです。シェルスクリプトで失敗条件を強制したり、条件文のプレースホルダーとして使われることがよくあります。

オプション

false コマンドは通常、オプションを受け付けません。単に非ゼロの終了ステータスを返すだけです。

使用例

基本的な使い方

$ false
$ echo $?
1

条件文での使用

$ if false; then echo "これは表示されない"; else echo "これは表示される"; fi
これは表示される

ループでの使用

$ while ! false; do echo "これは実行されない"; done

論理演算子との使用

$ false || echo "falseが失敗したのでこれは実行される"
falseが失敗したのでこれは実行される

$ false && echo "falseが失敗したのでこれは実行されない"

ヒント:

エラー処理のテスト

スクリプトでエラー処理をテストするために、falseを使ってコマンドを強制的に失敗させることができる。

無限ループの作成

while true; do ...; doneは無限ループを作成するが、while false; do ...; doneは一度も実行されない。

論理否定

! falseは真と評価され、条件論理で役立つことがある。

よくある質問

Q1. falsetrueの違いは何ですか?

A. falseは終了ステータス1(失敗)を返し、trueは0(成功)を返します。

Q2. falseは終了ステータスを返す以外に何かしますか?

A. いいえ、非ゼロの終了ステータスを返す以外は何もしないように設計されています。

Q3. なぜスクリプトでfalseを使うのですか?

A. エラー条件のテスト、条件論理の作成、または常に失敗するコマンドが必要な場合のプレースホルダーとして役立ちます。

Q4. falseの終了ステータスを変更できますか?

A. いいえ、falseは常に1を返すように設計されています。異なる終了ステータスが必要な場合は、シェルスクリプトでexit Nを使用できます。

参考文献

https://www.gnu.org/software/coreutils/manual/html_node/false-invocation.html

改訂履歴