shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script]


From: Julio C. Neves
Subject: Re: [shell-script]
Date: Sun, 13 Jul 2008 21:18:51 -0300

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 <address@hidden>:

>   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]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]