社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Community Robert Harvey  »  全部回复
回复总数  1
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文档是非常好的,因为它的内容根本不需要对转义内容进行修改, 它可以包含单引号。