$ ssh t@localhost [[ $- == *i* ]] && echo 'Interactive' || echo 'Not interactive'
Interactive
-s
上記のシェルにオプション引数がない-c
かどうかがないため、なぜインタラクティブなのか疑問に思います-i
。
Bashのマニュアルから:
対話型シェルは、-sが指定されているが-cオプションが指定されていない場合、入力とエラーの出力が端末に接続されていない限り(isatty(3)で決定されている限り)、オプションではなく引数なしで開始されたシェルです。または開始を使用する:-iオプション。
ありがとうございます。
ベストアンサー1
あなたはあなたが思ったテストを実行していません。拡張が$-
進行中です今後コマンドがssh
実行されます。展示する:
$ set -x
$ ssh home echo $-
+ ssh home echo himxBHs
himxBHs
$ ssh home 'echo $-'
+ ssh home 'echo $-'
hBc