書式
isatty [FD]

概要

isatty コマンドは
ファイルディスクリプタ(FD)が
端末(TTY)であるかをテストします。

FD はファイルディスクリプタを表す数字か、
以下の文字列のどれかを指定します。

  • stdin
  • stdout
  • stderr

指定されたFDが端末であるなら、
終了ステータス は0になります
(正常終了)。

そうでなければ、
非ゼロになり異常終了します。

標準エラー出力には
メッセージを表示しません。

実行例

対話的シェルから、
以下のコマンドを実行した場合は、
どれも正常終了します。

$ isatty
$ isatty stdout
$ isatty 2
$ echo | isatty 1

以下はどれも異常終了します。

$ echo | isatty
$ isatty 9
$ isatty stdout > file
$ isatty 2 2> file

スクリプトで使う

訳注:スクリプトで set_color を使って
色付き出力をするかどうかを決定する場合は
isatty stdout
で確認します。

function color_test
        if isatty stdout
                set_color green
                echo green!!
        else
                set_color normal
                echo normal.
        end
end
color_test
color_test | cat

対話的シェルから実行したとき、
結果は以下のようになります。

green!!(緑文字)
normal.(通常文字)

前者は標準出力が端末であり、
後者は cat へのパイプだからです。

最後までお読みいただき、ありがとうございました。参考になれば嬉しいです。