Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过ssh调用subshell$()并使用Here文档执行bash命令_Bash_Ssh_Heredoc_Subshell - Fatal编程技术网

通过ssh调用subshell$()并使用Here文档执行bash命令

通过ssh调用subshell$()并使用Here文档执行bash命令,bash,ssh,heredoc,subshell,Bash,Ssh,Heredoc,Subshell,我尝试通过ssh发送命令,如下所示: ssh user@192.168.1.1 "echo $(uname -a)" 但我的问题是,$(uname-a)部分实际上创建了一个子shell,并不是在192.168.1.1服务器上执行,而是在我的系统上执行,我从中执行了这个命令 我怎样才能修好它 另外,我的实际示例涉及docker stop all命令,如下所示 docker stop $(docker ps -q) 但我简化了问题 更新: 对不起,我把问题简化了。我的命令使用Here文档(因为内

我尝试通过ssh发送命令,如下所示:

ssh user@192.168.1.1 "echo $(uname -a)"
但我的问题是,
$(uname-a)
部分实际上创建了一个子shell,并不是在192.168.1.1服务器上执行,而是在我的系统上执行,我从中执行了这个命令

我怎样才能修好它

另外,我的实际示例涉及docker stop all命令,如下所示

docker stop $(docker ps -q)
但我简化了问题

更新: 对不起,我把问题简化了。我的命令使用Here文档(因为内部命令很复杂,并且使用了很多不同的引号)

sshuser@192.168.1.1单引号抑制所有替换

ssh user@192.168.1.1 'echo $(uname -a)'
我发现-


sshuser@192.168.1.1谢谢,您的解决方案很好,但我添加了更复杂的示例,它更接近我的实际命令。请参阅“重定向”一节底部附近的“man sh”。所有这些都记录在那里。
ssh user@192.168.1.1 'echo $(uname -a)'
ssh user@192.168.1.1 <<'SSHCOMMAND'
  echo $(uname -a)
SSHCOMMAND