O que significa “se echo $ line | grep -F = & / dev / null ”do?

3

Não tenho certeza do que a linha a seguir faz em um script bash:

if echo $line | grep -F = &>/dev/null
then
  ...

Eu sei que &>/dev/null é a abreviação de >/dev/null 2>&1 , não tenho certeza, no entanto, para qual = é e não consigo encontrar nenhuma explicação.

    
por bunana 26.01.2016 / 00:42

2 respostas

3

De man grep

-F, --fixed-strings
       Interpret PATTERN as a  list  of  fixed  strings,  separated  by
       newlines,  any  of  which is to be matched.  (-F is specified by
       POSIX.)

Então, é só verificar a presença de = como uma string literal em $line

    
por 26.01.2016 / 00:45
2

Faz:

case $line in 
(*=*) : this would be the then block
;; 
(*)   : maybe an else\?
;;
esac

... apenas não muito bem, ou quase tão rapidamente.

    
por 26.01.2016 / 10:38