true コマンドは、何もせず正常終了(終了ステータス 0 を返す)するコマンドです。GNU coreutils に含まれており、Linux では GNU 版が、FreeBSD では BSD 版が提供されています。基本的な動作は共通しています。

基本的な使い方

編集
true

何も出力せず、終了ステータス 0 を返します。

コマンドの成功判定に利用

編集
if true; then
  echo "このコードは必ず実行されます"
fi

無限ループの構築

編集
while true; do
  echo "ループ中..."
  sleep 1
done

このスクリプトは Ctrl + C で停止するまで "ループ中..." を1秒ごとに表示します。

スクリプトのエラーを防ぐ

編集
some_command || true

some_command が失敗しても、true が実行されるため、スクリプトの実行が継続されます。

FreeBSD 版との違い

編集

true コマンドの動作に大きな違いはありませんが、以下の点に注意が必要です。

主な違い

編集
  1. true は組み込みコマンドでも提供される
    • true は通常、シェル(bashsh)の組み込みコマンドとして提供される。
    • which true を実行すると、システムコマンドかシェル組み込みかを確認できる。
    which true
    
    • command -v true でも確認可能。
  2. GNU coreutils 版を FreeBSD で使う方法
    • coreutils パッケージをインストールすると gtrue という名前で GNU 版 true が使える。
    pkg install coreutils
    gtrue
    

詳しくは、それぞれの環境で man true を確認してください。