2017年12月9日土曜日

シェルスクリプトで端末から実行された場合だけメッセージを出したい

とあるシェルスクリプトを書いていて、端末から実行された場合だけメッセージを出したいと思いました。
tty コマンドで制御端末があるかどうか確認してから、/dev/tty へ書き込めば良いものとは思いましたが、ネット上に用例がないか調べたところ、ありました。AIX ではありますが。。
https://www.ibm.com/support/knowledgecenter/ja/ssw_aix_71/com.ibm.aix.cmds5/tty.htm
これを参考に、次のようなコードを書きました。
...
if [ $? -ne 0 ] && tty -s ; then
        echo "..." >/dev/tty
fi
...
なぜ、こうしたいのか? 標準エラーではダメなのか? と思われるかもしれませんが、世の中いろいろありますね。
ちょっと、ここには書けませんが。

0 件のコメント:

コメントを投稿

人気ブログランキングへ にほんブログ村 IT技術ブログへ