Как предотвратить разрыв строк в сценарии ksh? - PullRequest
1 голос
/ 14 июня 2011

Я пытаюсь изменить скрипт 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

IЯ немного сбит с толку относительно того, почему он печатает только один кусок за раз.Если у кого-либо есть какие-либо объяснения / модификации, они будут очень признательны!

Ответы [ 2 ]

4 голосов
/ 14 июня 2011

Простое выполнение grep "var/corefiles" $VFSTAB_LOC (без for или echo) сделает именно то, что вы говорите, что хотите сделать.

0 голосов
/ 14 июня 2011
grep "var/corefiles" $VFSTAB_LOC | while read line; do
         echo "$line"
done

или в недавних нападениях

readarray mylines < grep "var/corefiles" $VFSTAB_LOC

for line in "${mylines[@]}"; do
    echo "$line"
done

...