= Сообщение: 5961 из 10756 ===================================== RU.UNIX.BSD = От : Victor Sudakov 2:5005/49 18 Aug 17 08:54:22 Кому : Yury Ivliev 18 Aug 17 08:54:22 Тема : test(1) и sh FGHI : area://RU.UNIX.BSD?msgid=2:5005/49+59964a29 На : area://RU.UNIX.BSD?msgid=<1187507865@ddt.demos.su>+4fdfce5d = Кодировка сообщения определена как: CP866 ================================== ============================================================================== Dear Yury,
17 Aug 17 15:35, you wrote to me: VS>> В результате выполнения команды VS>> VS>> FOO=`bar` VS>> VS>> в переменной $FOO оказывается либо несколько строчек результата, VS>> либо просто newline (0x0a). YI> Что за странный shell?
Шелл обычный /bin/sh, просто я неверно интерпретировал результат, в IRC уже разобрались.
Есть разница между sh -cx 'test -n $LIST' и sh -cx 'test -n "$LIST"'
поэтому при пустом $LIST *без* *кавычек* test и срабатывал не так, как я ожидал.
YI> Если в результате, кторый выводит bar нет значимых пустых строк, то YI> можно сделать: FOO=`bar|grep -v '^$'` Тогда в FOO должен оказаться YI> либо значимый вывод bar, либо пустая строка.
В конечном итоге сделал лучше, через цикл
for FOO in `bar` ; do ...
В этом случае при пустом выводе `bar` цикл просто ни разу не отрабатывает, а при непустом столько раз, сколько строчек результата у `bar`.