LINUX.ORG.RU

проверить по очереди и применить логические AND + NOT

anonymous ()
list="`cat list.txt`"

for i in ${list} ; do
[ -e $i ] || { status="1" ; break 1 ; }
done
status="0"

Не проверял, но должно работать.

IPR ★★★★★ ()
Последнее исправление: IPR (всего исправлений: 1)
Ответ на: комментарий от IPR

anonymous
IPR

Спасибо, работают оба варианта.

IPR
status=«0» должно быть выше цикла for.

Будьте так любезны, дайте ссылку на мануал, где объясняется работа такой конструкции: использование оператора || в цикле.

carabo ()
Ответ на: комментарий от carabo

man bash

      AND and OR lists are sequences of one of more  pipelines  separated  by
       the  &&  and  || control operators, respectively.  AND and OR lists are
       executed with left associativity.  An AND list has the form

              command1 && command2

       command2 is executed if, and only if, command1 returns an  exit  status
       of zero.

       An OR list has the form

              command1 || command2

       command2  is  executed  if and only if command1 returns a non-zero exit
       status.  The return status of AND and OR lists is the  exit  status  of
       the last command executed in the list.

anonymous ()
Ответ на: комментарий от carabo

А, я затупил, цикл прерывается, а не выходит из скрипта.

IPR ★★★★★ ()
Ответ на: комментарий от IPR

<условие>

Какое еще условие?

[ -e $filename ] --- это не условие, а команда test возвращающая errno (код завершения)

anonymous ()
Ответ на: комментарий от anonymous

ты ещё мог приплести животноводство, или ещё какую лишнюю сущность, о которой недавно услышал, не имеющую к теме прямого отношения

anonymous ()
ls `cat list.txt` >/dev/null 2>&1 || z=1 && z=0
anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.