URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6094
[ Назад ]

Исходное сообщение
"Как написать, если Bash выдает пустую строку "

Отправлено stan777 , 17-Янв-07 19:04 
нужно что-то типа if("вывод баша" = NULL){..}, как это сделать ?
Конкретней у меня команда:
cat file.txt | grep word
если вывод пустой чтобы далее, не знаю как написать
if(`cat file.txt | grep word` = NULL)
или if($(cat file.txt | grep word) = NULL){..}
Короче кто знает как это написать ?

Содержание

Сообщения в этом обсуждении
"Как написать, если Bash выдает пустую строку "
Отправлено phpcoder , 17-Янв-07 19:22 
>нужно что-то типа if("вывод баша" = NULL){..}, как это сделать ?
>Конкретней у меня команда:
>cat file.txt | grep word
>если вывод пустой чтобы далее, не знаю как написать
>if(`cat file.txt | grep word` = NULL)
>или if($(cat file.txt | grep word) = NULL){..}
>Короче кто знает как это написать ?

Попробуй так:

if [ -z "$(grep word file.txt)" ]; then
   ...
fi

можно анализировать не вывод grep, а его код завершения:

grep -q word file.txt
if [ $? -ne 0 ]; then
   ...
fi

Советую man test, man grep


"Как написать, если Bash выдает пустую строку "
Отправлено allez , 18-Янв-07 06:55 
... или используйте в условии ту самую пустую строку:

if [ "`grep word file.txt`" == "" ]; then
  .......
fi

P. S. Простите, stan777, а вы что, серьезно не знали, как обозначается пустая строка? :-)

"Как написать, если Bash выдает пустую строку "
Отправлено phpcoder , 18-Янв-07 11:33 
>if [ "`grep word file.txt`" == "" ]; then

Для сравнения строк предпочтительнее использовать знак = вместо двойного равенства, т.к. последний поддерживается лишь в bash и некоторых версиях ksh.


"Как написать, если Bash выдает пустую строку "
Отправлено stan777 , 18-Янв-07 13:48 
>... или используйте в условии ту самую пустую строку:
>
 
>if [ "`grep word file.txt`" == "" ]; then
>  .......
>fi
>

>P. S. Простите, stan777, а вы что, серьезно не знали, как обозначается
>пустая строка? :-)
Спасибо!