通过 ssh 以 pkill -f 开头在一行中执行多个命令

通过 ssh 以 pkill -f 开头在一行中执行多个命令

使用树莓派时注意到一些奇怪的事情。

使用不带选项的 pkill 允许我随后在同一行中运行其他命令,但如果我使用选项 -f,则后续命令将被忽略。有谁知道为什么?

$ ssh [email protected] "pkill -f blablabla ; echo yeaaaah"
[email protected]'s password:


$ ssh [email protected] "pkill blablabla ; echo yeaaaah"
[email protected]'s password:
yeaaaah

blablabla 进程是否存在都没有区别。

答案1

因为-f允许pkill匹配命令行中的任何位置,所以它blablabla在远程 shell 的参数列表中匹配,并杀死它。

如果您改为运行,您可以看到发生了什么pgrep -af

$ ssh [email protected] "pgrep -af blablabla ; echo yeaaaah"
[email protected]'s password:
29223 bash -c pgrep -af blablabla ; echo yeaaaah
yeaaaah

相关内容