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

Linux 为什么echo显示的是命令本身而不是命令输出,linux,bash,centos,Linux,Bash,Centos,为什么一旦我开始在FOR I循环中使用echo,它就会显示命令而不是命令的输出?例如,该命令起作用 root@linux1 tmp]# iscsiadm -m node |awk '{print $1}' 192.168.100.88:326 但不是在FOR I循环中 [root@linux1 tmp]# for i in 'iscsiadm -m node | awk '{print $1}'';do echo $i;done iscsiadm -m node | awk {print }

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

root@linux1 tmp]# iscsiadm -m node |awk '{print $1}'
192.168.100.88:326
但不是在FOR I循环中

[root@linux1 tmp]# for i in 'iscsiadm -m node | awk '{print $1}'';do echo $i;done
iscsiadm -m node | awk {print
}
我希望命令打印第一个字段,这样我就可以向For I循环添加其他功能。谢谢


编辑--不知道为什么我在这个问题上被否决了。请告知

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


我猜你被否决了,因为你的行有明显的错误,通过学习基本的shell脚本可以很容易地修复这些错误,也许你可以问自己“我如何循环一个进程的输出?”“并在所有可用的来源中找到答案。如果您对所找到的不满意,或者无法使其正常工作,那么(并且只有在那时)提出一个问题。在这些答案中,您可能会看到:
while read-r i;do echo”$i”;done<谢谢你的反馈。我能欣赏你的观点。我在IT方面有15年的专业经验,并且能够自学。因此,我在自学编程。但是我的大脑是这样的(至今)所以我觉得这些答案并不明显。一旦你知道了答案,答案很明显,但一开始就很难。如果你问我的话,有人把它推到你脸上,这有点势利。但不管怎样,我都要感谢那些给出了有用回复的人。
for i in $(iscsiadm -m node |awk '{print $1}'); do
    echo $i
done