不能在单引号字符串中包含单引号。但是,这并不重要,因为一个参数可以有多个带引号的段(只要没有未带引号的空格或其他自定界字符)。
例如:
ssh deploy@hera 'kill -9 `ps -ef |
grep MapReduceNode |
grep -v "grep" |
awk -F " " '\''{print $2}'\'" |
head -n 1`"
但是,该命令行是
非常
笨拙的如果可能,您应该使用
pkill
公用事业,这将减少所有这些
ssh deploy@hera 'pkill -SIGKILL MapReduceNode'
.
否则,您可以在一个
awk
调用(未经测试,但我认为它会工作):
ssh deploy@hera 'ps -ef |
awk "/[M]apReduceNode/{system(\"kill -9 \"$2)}"'
(与原始任务不同,这将杀死所有mapreducenode任务,而不是任意的第一个任务。如果你真的想在一个任务中完成,添加
; exit
到awk动作。)