LINUX.ORG.RU

[bash] if и результат grep`а

 


0

2

всем привет.

собственно, пытаюсь использовать результат grep`а в if`е.

накодил на ideon`е такое:

SOMEVAR1="some-text"
SOMEVAR2="some-text1"
 
testf() {
        echo "$0" | grep "$1"
        if [ $? ]
        then
                echo ok
        else
                echo bad
        fi
}
 
 
testf "$SOMEVAR1" "text"
testf "$SOMEVAR1" "text1"
 
testf "$SOMEVAR2" "text"
testf "$SOMEVAR2" "text1"
http://ideone.com/nDVUf

но все результаты положительные. почему? что я опять не так делаю?

спасибо.

★★★

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

вы очень помогли. спасибо.

решил так:

SOMEVAR1="some-text"
SOMEVAR2="some-text1"
 
testf() {
        echo -n "\"$2\" in \"$1\" - "
        if [ "$(echo $1 | grep $2)" ] ; then
                echo ok
        else
                echo bad
        fi
}
 
 
testf "$SOMEVAR1" "text"
testf "$SOMEVAR1" "text1"
 
testf "$SOMEVAR2" "text"
testf "$SOMEVAR2" "text1"
[[/code]]

http://ideone.com/sOZAu

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

Всегда рад помочь. А если серьезно, в девелопенти вам может быстрее ответили.

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

учись писать запутанно

if [ "$(echo $1 | grep $2)" ] ; then
   echo ok
else
   echo bad
fi

замени на

grep -q $2 <<<$1 &&  echo ok || echo bad

В девелопменте этому не место, на такое громкое слово это не тянет

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

niXman> это три левые угловые скобки(<<<),

не надо так делать

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

man bash, описание перенаправлений

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

Экранировать backquote не забывайте: [ `echo «1 = 2» | grep «1»` ]

anonymous
()
Ответ на: учись писать запутанно от zolden

>учись писать запутанно

... иначе срочно править скипт через год будет слишком просто :)

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

Что вам кажется не уместным в данном примере ?

Если нечего сказать незачем скрываться в анонимусах.

kostik87 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.