シェルスクリプトで、標準出力が端末の場合に挙動を変化させたい
いくつかの cli ツールでは、標準出力が端末 (tty?) に繋がっている場合に、その挙動が変化するツールがあります。
たとえば、 redis-cli がそうで、端末上で redis-cli keys '*'
を実行すると、 human readable な形式で出力されますが、その出力をパイプにつないだ場合には、 machine readable な形式の出力になります。
% redis-cli keys '*'
1) "foo"
% redis-cli keys '*' | cat
foo
このような挙動を、ふと、シェルスクリプトで再現したくなりました。
質問
標準出力が端末に繋がっているかどうかを、シェルスクリプトから判定することはできますか?