【shell】远程执行命令awk 没有生效

bug现象

awk命令没有生效,没有输出指定列

#!/bin/bash
cmd="awk -F, '{print $4}' /home/.../xxx.log|sort|uniq"
for i in $ipList;do
    echo -e "\033[31m= $i = \033[0m";
    ssh -o StrictHostKeyChecking=no rd@$i "$cmd" < /dev/null;
done

原因

因为ssh "$cmd" 有层双引号,双引号会对$4进行解析,$4在上下文中不存在,导致结果不符合预期

fix方案

$ 符号进行转义

cmd="awk -F, '{print \$4}' /home/.../xxx.log|sort|uniq" #转义\
 
发布了92 篇原创文章 · 获赞 14 · 访问量 5833

猜你喜欢

转载自blog.csdn.net/sarafina527/article/details/103475353