コンテンツにスキップ

GNU Core Utilities/true

出典: フリー教科書『ウィキブックス(Wikibooks)』

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 を確認してください。