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

标签 linux bash centos

当我开始在 FOR I 循环中使用 echo 时,为什么 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 循环添加其他功能。谢谢

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

最佳答案

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

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

关于linux - 为什么 echo 显示命令本身而不是命令输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32917678/

相关文章:

C代码通过Linux中的蓝牙串行端口配置文件从nonin脉搏血氧计设备读取数据

linux - 如何让 linux 驱动程序在 linux 内核加载后检测和使用设备?

linux - 检测Linux中最大的分区

linux - 循环中的函数会破坏每隔一次迭代

linux - 在bash中每n个命令执行一次函数

Linux - 在一定时间内重复执行一条命令

javascript - 在 Firefox 中定义自定义键

bash - 将列表转为表格格式 (awk)

php - 在 symfony2 上使用 wkhtmltopdf 生成 PDF

php - 如何让 MCrypt 和 PHP 在 CentOS 上协同工作