【 true/false 】コマンド――常に「成功」または「失敗」で終了するLinux基本コマンドTips(318)

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、常に「成功」で終了する「true」コマンドと、常に「失敗」で終了する「false」コマンドです。

» 2019年07月04日 05時00分 公開
[西村めぐみ@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、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)。



画面1 画面1 コマンドの終了コードを表示したところ


筆者紹介

西村 めぐみ(にしむら めぐみ)

元々はDOSユーザーで「DOS版UNIX-like tools」を愛用。ソフトハウスに勤務し生産管理のパッケージソフトウェアの開発およびサポート業務を担当、その後ライターになる。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。地方自治体の在宅就業支援事業にてMicrosoft Officeの教材作成およびeラーニング指導を担当。会社などの"PCヘルパー"やピンポイント研修なども行っている。


Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。