Linux true コマンド

Linux 命令大全Linux コマンド大全


true コマンドとは

trueLinux/Unix システムの中で最も単純なコマンドの1つで、機能はただ1つだけです:常に成功(終了ステータスコード 0)を返します。

このコマンドは一見単純ですが、シェルスクリプトプログラミングにおいて重要な用途があります。「何もしないが常に成功する」操作に相当します。


基本構文

例

true [--help] [--version]

オプションの説明

オプション 説明
--help ヘルプ情報を表示して終了
--version バージョン情報を表示して終了

動作原理

trueコマンドの実行プロセスは非常に簡単です:

  1. ターミナルで入力しtrueEnter キーを押すと
  2. システムがこのコマンドを実行します
  3. コマンドは即座に完了し、何も操作を行いません
  4. 終了ステータスコード 0(成功を示す)を返します

実際の使用例

1. 無限ループの条件として

例

while true; do
    echo 「これは無限ループです」
    sleep 1
done

この例では、while true無限ループが作成されます。なぜならtrueが常に成功(0)を返すため、ループ条件が常に真になるからです。

2. デフォルトの成功操作として

例

command || true

この書き方は、もしcommandの実行が失敗した場合に、true(常に成功)を実行することを意味します。これにより、式全体が常に成功状態を返すことを保証できます。

3. スクリプト内のプレースホルダーとして

例

if [ condition ]; then
    :  # 何もしない
else
    true  # このように何もしないことを表すこともできます
fi

ここではtrueが空操作の代替として使用され、コード構造がより明確になります。


false コマンドとの比較

Linux には対応するfalseコマンドもあり、これは常に失敗(終了ステータスコード 1)を返します。以下の表にそれらの違いを示します:

コマンド 機能 終了ステータスコード 典型的な用途
true 何もしないで成功を返す 0 無限ループ、エラーを無視する
false 何もしないで失敗を返す 1 エラーハンドリングのテスト、条件分岐

実装原理

ほとんどの Linux システムでは、trueは組み込みコマンド(shell builtin)ですが、通常は独立したバイナリ版も存在します:

例

$ type -a true
true is a shell builtin
true is /usr/bin/true
true is /bin/true

その実装は非常に単純で、C 言語では次のように表せます:

例

int main() {
    return 0;
}

実践演習

ターミナルで直接実行してみましょうtrueその後、終了ステータスコードを確認します:

例

true
echo $?  # 0 が出力されます

5秒ごとに現在時刻を出力する無限ループスクリプトを作成します:

例

#!/bin/bash
while true; do
    date
    sleep 5
done

テストtrue条件分岐での動作:

例

if true; then
    echo 「これは常に実行されます」
fi

よくある質問

Q: true コマンドは本当に何もしないのですか?A: はい、実際の操作は何も行わず、成功の終了ステータスを返すだけです。

Q: なぜこのような一見役に立たないコマンドが必要なのでしょうか?A: スクリプトプログラミングでは、常に成功するプレースホルダーや条件が必要な場合があり、trueがまさにそのニーズを満たします。

Q: true とコロン(:)の違いは何ですか?A: ほとんどのシェルでは、:も何もしないコマンドで、動作はtrueと同じです。ただし、:は純粋なシェル組み込みコマンドですが、trueには独立したバイナリ版がある場合があります。


まとめ

trueコマンドは単純ですが、シェルスクリプトプログラミングにおいて実用的なツールです。主な特徴は次のとおりです:

  • 常に成功(終了ステータスコード 0)を返す
  • 実際の操作を何も行わない
  • 無限ループ、エラーハンドリング、コードのプレースホルダーとしてよく使用される

Linux 命令大全Linux コマンド大全

その他の拡張