【 true/false 】コマンド――常に「成功」または「失敗」で終了する:Linux基本コマンドTips(318)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、常に「成功」で終了する「true」コマンドと、常に「失敗」で終了する「false」コマンドです。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、常に「成功」で終了する「true」コマンドと、常に「失敗」で終了する「false」コマンドです。
true/falseコマンドとは?
「true」は常に「成功」で終了するコマンド、「false」は常に「失敗」で終了するコマンドです。いずれも具体的な処理は実行せず、特定の終了コードを返します。
これらのコマンドは条件分岐に使ったり(連載第219回)、他のコマンドの終了コードを上書きしたりする際に利用できます。
true、false共に2種類のコマンドがあります。bashの内部コマンド(ビルトインコマンド、シェルコマンド)と外部コマンド(/bin/trueと/bin/false)です(連載第153回)。どちらも機能はほぼ同じです。なお、内部コマンドの詳細を調べるには「help」コマンドを使い、外部コマンドでは「man」コマンドを使います。
true/falseコマンドの書式
true [オプション]
false [オプション]
※[ ]は省略可能な引数を示しています。
true/falseの主なオプション
内部コマンドのtrueとfalseにはオプションがありません。
外部コマンドのtrueとfalseには、ヘルプを表示する「--help」と、バージョンを表示する「--version」があります。
常に「成功」または「失敗」で終了する
「true」を実行すると、必ず「成功」で終了します。「false」を実行すると、必ず「失敗」で終了します。
trueは終了コード「0」を返して終了します。その他は何も行いません。また、引数などを指定しても無視します。
falseは終了コード「1」を返して終了します。その他は何も行いません。trueと同様に引数などを無視します。
コマンド実行例
true
(「成功」で終了する、終了コードは「0」)
false
(「失敗」で終了する、終了コードは「1」)
「$?」を使うと、直前に実行したコマンドの終了コードを参照できます。画面1では、trueとfalseの次の行で「echo $?」を実行し、終了コードを表示しています(※1)。
※1 $?は「直前に」実行したコマンド」の終了コードを保持しているため、例えば「echo $?」を2回連続して実行した場合、2回目は直前に実行した「echoコマンド」の実行結果が表示されてしまう。スクリプトの中で、$?を使用する場合はいったん別の変数に保存するという手法がある(連載第317回のスクリプト例4)。
筆者紹介
西村 めぐみ(にしむら めぐみ)
元々はDOSユーザーで「DOS版UNIX-like tools」を愛用。ソフトハウスに勤務し生産管理のパッケージソフトウェアの開発およびサポート業務を担当、その後ライターになる。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。地方自治体の在宅就業支援事業にてMicrosoft Officeの教材作成およびeラーニング指導を担当。会社などの"PCヘルパー"やピンポイント研修なども行っている。
Copyright © ITmedia, Inc. All Rights Reserved.