如何防止grep在ksh脚本中分解行?

时间:2011-06-14 13:22:40

标签: unix scripting grep ksh

我正在尝试修改ksh脚本以打印出包含短语“/ var / corefiles”的行。我对脚本很新,所以这让我感到不安。例如,如果我在文件中有以下行

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

我用它来循环:

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

输出:

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

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

2 个答案:

答案 0 :(得分:4)

简单地执行grep "var/corefiles" $VFSTAB_LOC(没有forecho)就会完全按照您的意愿行事。

答案 1 :(得分:0)

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

<击>