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" #转义\