为什么echo显示命令本身而不是命令输出

时间:2015-10-03 00:30:27

标签: linux bash centos

为什么一旦我开始在FOR I循环中使用它,echo显示命令而不是命令的输出?例如,此命令有效

root@linux1 tmp]# iscsiadm -m node |awk '{print $1}'
192.168.100.88:326

但不是FOR FOR循环

[root@linux1 tmp]# for i in 'iscsiadm -m node | awk '{print $1}'';do echo $i;done
iscsiadm -m node | awk {print
}

我希望命令打印第一个字段,然后我可以为For I循环添加其他功能。感谢

编辑 - 不知道为什么我对这个问题投了反对票。请指教。

1 个答案:

答案 0 :(得分:2)

您没有执行iscsiadmawk命令,因为您引用了它;这使它成为一个文字字符串。要将命令的输出替换回命令行,请使用$(...)

for i in $(iscsiadm -m node |awk '{print $1}'); do
    echo $i
done