【问题标题】:How to prevent grep from breaking up lines in a ksh script?如何防止 grep 破坏 ksh 脚本中的行?
【发布时间】:2011-09-14 16:59:33
【问题描述】:

我正在尝试修改 ksh 脚本以打印出包含短语 "/var/corefiles" 的行。我对脚本相当陌生,所以这让我很困惑。例如,如果我在文件中有以下行

/dev/x /dev/x2 /var/corefiles yes

我使用这个 for 循环:

for $host in $(grep "var/corefiles" $VFSTAB_LOC); do
         echo $i
done

它输出:

 /dev/x
 /dev/x2
 /var/corefiles
 yes

我有点困惑,为什么它一次只打印出一个块。如果有人有任何解释/修改,他们将不胜感激!

【问题讨论】:

    标签: unix scripting grep ksh


    【解决方案1】:

    只需执行grep "var/corefiles" $VFSTAB_LOC(不带forecho)就可以完全按照您所说的去做。

    【讨论】:

    • 我有一种感觉,“回声”只是他在循环中实际所做的简化演示 :)
    • 即使没有尝试,我也会“忍受”GIGO。不过,我确实尝试应用一些常见的人工智能(?)智能
    • 伙计,我很笨。谢谢!是的,echo 是其他所有事情的占位符:)
    【解决方案2】:
    grep "var/corefiles" $VFSTAB_LOC | while read line; do
             echo "$line"
    done
    

    或最近的 bashes

    readarray mylines < grep "var/corefiles" $VFSTAB_LOC
    
    for line in "${mylines[@]}"; do
        echo "$line"
    done
    

    【讨论】:

    • 我想我 now :) 第一个选项 does 与 Korn shell IIRC 一起工作
    猜你喜欢
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 2016-02-06
    • 2021-03-29
    • 1970-01-01
    相关资源
    最近更新 更多