`ssh user@server mycommand`がインタラクティブシェルを生成するのはなぜですか?

`ssh user@server mycommand`がインタラクティブシェルを生成するのはなぜですか?
$ 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

おすすめ記事