いくつかの cli ツールでは、標準出力が端末 (tty?) に繋がっている場合に、その挙動が変化するツールがあります。

たとえば、 redis-cli がそうで、端末上で redis-cli keys '*' を実行すると、 human readable な形式で出力されますが、その出力をパイプにつないだ場合には、 machine readable な形式の出力になります。

 % redis-cli keys '*'
1) "foo"

 % redis-cli keys '*' | cat      
foo

このような挙動を、ふと、シェルスクリプトで再現したくなりました。

質問

標準出力が端末に繋がっているかどうかを、シェルスクリプトから判定することはできますか?