2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

シェルスクリプトでインタラクティブシェルか確認する

Posted at

スクリプトで、インタラクティブシェルから起動されたのか、バッチで起動されたのか判断したい事が稀にある。

test コマンドに -t というオプションがある。
このオプションは、ファイルデスクリプタ番号が端末に関連付けられていれば真を返す。

sample
if [ -t 0 ];then
    echo its terminal session!
else
    echo its not terminal session...
fi

0,1,2のstdin, stdout, stderr が端末に関連付けられているかを確認すればそれがインタラクティブセッションかどうか確認できる。

っていう事を、FreeBSDのportsnapコマンドのfetchサブコマンドがやってました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?