SSHスクリプトはフルパス変数にアクセスできません。

SSHスクリプトはフルパス変数にアクセスできません。

sshホストマシンに入ってecho $PATH

$ ssh my@host
$ echo $PATH

私が取得する値は、$PATHスクリプトをローカルで実行するときとは異なります。

ssh my@host '\
    echo $PATH;'

理由をご存知ですか?

メモ:sshスクリプトで[他の] CLIを使用すると、フルパス変数を取得できないようです。

ベストアンサー1

これは、ssh()を介してコマンドを実行すると、ssh user@host 'command'非ログインシェルが開かれるためです。ログインシェルと非ログインシェルの違いの詳細な分析を確認できます。この問題では。本質的に問題の原因は、ssh を介してコマンドを実行すると、コマンドに~/.bash_profileソースがないため、パスに対する修正が利用できないことです。

~/.bashrc解決策は、非ログインシェルを開くときに取得できるファイルにファイルを移動するか、見つかったように.bash_profileスクリプトから直接インポートすることです。

おすすめ記事