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
Bash ';grep';无法通过ssh识别_Bash_Ssh_Openssl - Fatal编程技术网

Bash ';grep';无法通过ssh识别

Bash ';grep';无法通过ssh识别,bash,ssh,openssl,Bash,Ssh,Openssl,我正试图远程关闭我的应用程序,如下所示: ssh pi@192.168.0.227 "kill $(ps aux | grep '[M]yApp' | awk '{print $2}')" 它失败并提示: grep:术语“grep”不能识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试 如果我先通过SSH登录,然后执行命令,它会工作,但我需要它是一行程序。我已经将/etc/ssh/sshd_configva

我正试图远程关闭我的应用程序,如下所示:

ssh pi@192.168.0.227 "kill $(ps aux | grep '[M]yApp' | awk '{print $2}')"
它失败并提示:

grep:术语“grep”不能识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试


如果我先通过SSH登录,然后执行命令,它会工作,但我需要它是一行程序。我已经将
/etc/ssh/sshd_config
variable
PermitUserEnvironment
设置为
yes
,并尝试使用grep的完整路径(
/bin/grep
),甚至删除了管道周围的空格(这些都是与我类似的问题的答案),但没有任何东西允许我传递命令。我缺少什么?

字符串在传递到另一个主机之前由本地shell展开。由于是双引号字符串,
$()
中的命令在本地主机上运行。将此类命令传递给远程主机的最简单方法是使用“引号”:

sshpi@192.168.0.227
ssh pi@192.168.0.227 <<'EOF'
kill $(ps aux | grep '[M]yApp' | awk '{print $2}')"
EOF