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

Why is echo showing the command itself and not the command output

为什么当我在 FOR I 循环中开始使用 echo 时显示的是命令而不是命令的输出?例如这个命令有效

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

但不在 FOR I 循环中

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

我希望命令打印第一个字段,这样我就可以向 For I 循环添加其他功能。谢谢

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

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

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