"ssh user@host echo $PATH" は、リモートパスではなくローカルパスを提供します。

なぜこの命令なのか

ssh user@host echo $PATH

または

ssh user@host -t echo $PATH

リモートシステムの代わりにローカルシステムへのパスを返しますか?

これは、次のリモートコマンドを実行することを意味します。

ssh user@host command

このコマンドはリモートコンピュータから取得されますが、ローカルコンピュータで定義されているパスを使用します。これは少し奇妙な動作ですか、それとも私が間違っていますか?

ベストアンサー1

注文する

ssh user@host echo $PATH

変数は引用符なしでコマンドラインに提供されるため、echoローカル値に関係なくリモートホストで実行されます。$PATH

得るために離れてパスを指定して、ローカルシェルがこの変数を拡張しないようにします。

ssh user@host 'echo $PATH'

コマンドの周囲の一重引用符はローカルシェルの拡張を防ぎます$PATH

おすすめ記事