3

次のようなssh経由でコマンドを送信しようとしました:

ssh user@192.168.1.1 "echo $(uname -a)"

しかし、私の問題は、その$(uname -a)部分が実際にサブシェルを作成し、192.168.1.1サーバーではなく、このコマンドを実行したシステムで実行されることです。

どうすれば修正できますか?

PS私の実際の例には、 docker stop all コマンドが含まれていました。これは次のようになります

docker stop $(docker ps -q)

しかし、私は質問を単純化しました。

更新: 申し訳ありませんが、質問を単純化しすぎています。私のコマンドはHere Documentを使用します(内部コマンドは複雑で、多くの異なる引用符を使用するため)

ssh user@192.168.1.1 <<SSHCOMMAND
  echo $(uname -a)
SSHCOMMAND

したがって、Ignacio Vazquez-Abrams ソリューションは機能しません

4

2 に答える 2

6

一重引用符はすべての置換を抑制します。

ssh user@192.168.1.1 'echo $(uname -a)'
于 2015-09-11T12:25:22.303 に答える