Fala Marlon, a opção -q (quiet) do grep serve para não jogar na stdout a linha em que existia a cadeia
$ grep ^root /etc/passwd && echo achei root:x:0:0:root:/root:/bin/bash achei $ grep -q ^root /etc/passwd && echo achei achei a opção -s é para não mandar erro para a saída caso vc não tenha direito de leitura ou o arquivo não exista (o grep não dá erro qdo não encontra a cadeia pesquisada). Veja: $ grep julio nãoexiste grep: nãoexiste: Arquivo ou diretório inexistente $ grep -s julio nãoexiste $ Então a opção -qs significa silêncio total e stdout e stderr. Experimente tb fazer assim: # passando parâmetros para o shell corrente $ set - ana banana # Será que funcionou? $ echo $0 bash $ echo $1 ana $ echo $2 banana # Blz! Então vamos ao que interessa $ grep -qs $1 <<< "$2" && echo "$1 está contida em $2" ana está contida em banana Assim vc escreve menos e é um pouquinho mais rápido pq não tem pipe para fazer fork do shell -- Abraços, Julio Em setembro estarei dando um treinamento Shell em Brasília (em 2 fins de semana). Mais informações: www.tecnologiabr.com.br Tel: (61) 3354-3162 2008/7/13 Marlon Vagner Reck <[EMAIL PROTECTED]>: > Amigos > > Comprei o livro "Shell script profissional " do Aurélio ( muito bom por > sinal) > e me deparei com a seguinte linha: > > echo $2 | grep -qs $1 && echo "$1 está contida em $2" > > que pesquisa dentro de uma palavra a existência de outra, exemplo ana > dentro > de banana. Só que eu não consegui entender de o funcionamento dela, o echo > mostra a váriavel 2 digamos "banana" e joga no sub-shell para que o grep > pesquise a váriavel 1 digamos "ana" dentro da palavra "banana", qual a > mecânica da coisa a lógica? > > Obrigado a todos > Marlon > > -- Abraços, Julio Em setembro estarei dando um treinamento Shell em Brasília (em 2 fins de semana). Mais informações: www.tecnologiabr.com.br Tel: (61) 3354-3162 [As partes desta mensagem que não continham texto foram removidas]
