【问题标题】:Difference of for next in and while read linefor next in 和 while read 行的区别
【发布时间】:2015-03-03 21:30:35
【问题描述】:

假设文件是​​

值1.1 值2.1
价值1.2 价值2.2
..

为什么会这样:

而读行

value1=$(echo "$line" | cut -f1)
完成
按预期工作,但是:

$(cat 文件)中的下一个

value1=$(echo "$next" | cut -f1)
完成

没有。这里的根本区别是什么?

【问题讨论】:

    标签: bash


    【解决方案1】:

    for 执行分词,从$IFS 中的任意字符分隔的文本中依次取出每个单词。 read 使用 \n 作为分隔符读取,这会导致它一次读取整行。

    【讨论】:

    • 啊,所以只要设置 IFS="\n" 就可以很容易地从 for 中读取类似行为。编辑,显然不是..
    • 或者你可以一开始就做正确的事并使用while read
    • 是的,我猜。为了将来参考,将 IFS 设置为 \n 确实有效,我只是上面的语法错误。它是 IFS=$'\n'
    • 是的,你是对的。而 read 实际上是更好的方法。 ref1ref2
    猜你喜欢
    • 2019-06-24
    • 2016-12-16
    • 1970-01-01
    • 2017-11-15
    • 2010-10-12
    • 2011-03-21
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    相关资源
    最近更新 更多