Marlon, por um acidente de trabalho, enviaram minha resposta incompleta. então aí vai ela completa:
A sua dúvida (<<<) chama-se here strings e está super bem explicada (em português) em http://twiki.softwarelivre.org/TWikiBar/TWikiBarBirinaite#Here_Strings A maior parte dos cmds do Unix/Linux aceitam, caso vc não informe a entrada, os dados pela entrada primária (stdin), ou seja, o teclado, que pode ser redirecionado por um pipe (qdo vierem dados) ou um < (qdo for arquivo). O grep se comporta desta maneira e vc pode verificar isso fazendo o seguinte: $ grep ana pera uva banana banana eu não informei a entrada e mandei as frutas direto pelo teclado. Repare que ele repetiu banana pq casou com ana. Eu disse que quase todos os cmds aceitam redirecionamento de entrada, mas alguns como o rm não aceitam por motivo de segurança. Veja: $ ls ls* lsof.txt $ ls ls* | rm rm: operando faltando Tente `rm --help' para mais informação. A sorte é que tem o xargs que quebra este galho. Então eu poderia fazer: $ ls ls* | xargs rm E desta forma remover estes arquivos. Maiores detalhes sobre o xars em português em: http://twiki.softwarelivre.org/TWikiBar/TWikiBarBirinaite#Passando_par%E2metros_com_xargs Enfim, tudo o que disse está muito bem explicado em português nos Papos de Botequim, que estão em http://twiki.softwarelivre.org/TWikiBar/WebHome -- 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/14 Julio C. Neves <[EMAIL PROTECTED]>: > Fala Marlon, > A sua dúvida (<<<) chama-se here strings e está super bem explicada (em > português) em > http://twiki.softwarelivre.org/TWikiBar/TWikiBarBirinaite#Here_Strings > -- > 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]>: > >> >> Obrigado a todos >> >> A parte do && e do grep -qs eu tinha entendido, minha dúvida é como ele >> conseguiu fazer o grep procurar uma palvra dentro de outra sem esta estar >> em >> um arquivo e sim em uma váriavel ou no final de um comando mas com a ajuda >> do >> Julio C. Neves eu entendi, agora o que me perturba é o comando do Julio ( >> rindo de mim mesmo por não entender os comandos ): >> >> grep -qs $1 <<< "$2" && echo "$1 está contida em $2" >> >> a parte que não entendi é o que os " <<< " fazem de diferente de apenas um >> " >> < " , as váriaveis não estão todas no mesmo shell ? >> >> Em Sunday 13 July 2008 21:18:51 Julio C. Neves escreveu: >> >> > 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]<marlon_mca%40yahoo.com.br> >> >: >> > > 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 > -- 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]
