【发布时间】:2024-01-22 19:53:01
【问题描述】:
为什么在我开始在 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 循环添加其他功能。谢谢
编辑——不知道为什么我在这个问题上被否决了。请指教。
【问题讨论】:
-
我猜你被否决了,因为你的行有明显的错误,可以通过学习基本的 shell 脚本很容易地修复,也许通过问自己“我如何循环一个进程的输出”并找到所有可用资源中的答案。如果您对找到的内容不满意,或者您无法使其发挥作用,那么(并且只有在那时)提出问题。
-
在您可能会看到的答案中:
while read -r i _; do echo "$i"; done < <(iscsiadm -m node),这是正确答案。 -
感谢您的反馈。我很欣赏你的观点。我从事 IT 专业 15 年,能够自学。因此,我正在自学编程。然而,我的大脑是这样连接的(还),所以我发现这些答案并不明显。一旦你知道答案是显而易见的,但一开始很难。如果你问我,让人们把它推到你脸上有点势利。但无论哪种方式,我都感谢那些发布有用回复的人。