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. falseとtrueの違いは何ですか?
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
改訂履歴
- 2025/05/05 初版