私信  •  关注

Community Robert Harvey

Community Robert Harvey 最近创建的主题
Community Robert Harvey 最近回复了
6 年前
回复了 Community Robert Harvey 创建的主题 » 在远程计算机上执行mysql查询[重复]

还有两个选项我在其他答案中都没有提到。为了演示的目的,我保留了grep/grep/awk/head管道的完整性(如 rici's answer )它可以简化为

awk -F ' ' '/MapReduceNod[e]/ {print $2; exit}'
  1. 对整个ssh命令使用双引号:

    ssh deploy@hera "kill -9 \$(ps -ef |
    grep MapReduceNode | grep -v \"grep\" | awk -F ' ' '{print \$2}' | head -n 1)"
    

    请注意,我现在可以在命令中使用单引号,但我必须避开其他尚未展开的内容: \$() (我用它代替了反勾号),双引号 \" print \$2 .

  2. 带引号分隔符的here文档:

    ssh -T deploy@hera <<'EOF'
    kill -9 $(ps -ef | grep MapReduceNode | grep -v 'grep' |
    awk -F ' ' '{print $2}' | head -n 1)
    EOF
    

    这个 -T 防止ssh抱怨没有分配伪终端。

    带引号分隔符的here文档是非常好的,因为它的内容根本不需要对转义内容进行修改, 它可以包含单引号。