3
`ssh <host>`はログインシェルですが、 `ssh <host> <command>`はログインシェルではありませんか?
ssh <host> <command>構文を使用してSSHホストでコマンドを直接実行すると.bashrc、.bash_profile(または.profile)の出力は表示されますが、出力は表示されないことに気づきました。 たとえば、次のコマンドを両方のファイルの先頭に配置すると、 echo ${BASH_SOURCE[0]} 手動でソースします.bash_profile(.bashrc順番にソースします)。 $ . .bash_profile .bash_profile .bashrc これは、ssh <host>コマンドの形式を使用して、SSH経由でこのコンピューターにリモートでログインした場合に表示される出力と同じです。(そして、.bash_profile一時的に別の場所に格納した場合、これらの行はどちらもエコーされません。) ただし、のssh <host> <command>形式でリモートマシンで直接コマンドを実行するとssh、出力は次のようになります。 $ ssh <host> echo foo /home/rlue/.bashrc foo 私の理解では、との違いということである.bash_profileとは、.bashrc前者がためであるということであるログインシェル後者はためのものであるインタラクティブ、非ログインシェル。 私は次のように結論しました: ssh <host>ソースのみ.bash_profile、一方 ssh <host> <command>ソースのみ.bashrc、つまり 前者はログインシェルであり、後者はそうではありません。 これらの結論は正しいですか?がssh <host> <command>インタラクティブな非ログインシェルとして扱われるのはなぜですか?SSHはまだリモートマシンにログインしてコマンドを実行していませんか?