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

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

Re: [shell-script] Script comentado


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Script comentado
Date: Sun, 4 Nov 2007 17:25:50 -0200

On 11/4/07, Jose Valdir Gama <address@hidden> wrote:
> LISTA=$(cat $PREFIX/etc/list.conf | grep ^\/ | sort | uniq)
>
> o que este ^V | sort | uniq faz?

Vejamos esta linha:

LISTA=$(cat $PREFIX/etc/list.conf | grep ^\/ | sort | uniq)

ela é o mesmo que

LISTA=$( comando )

ou seja, se vc executar na linha de comando o que está entre '$(' e
')' vai ver alguma coisa sendo escrita na tela. apresento a vc uma
forma de capturar tudo isso e colocar na variavel de ambiente LISTA.
Vejamos passo a passo:

cat $PREFIX/etc/list.conf | grep ^\/ | sort | uniq

aqui vc tem uma sequencia de 4 pipes. vejamos

cat $PREFIX/etc/list.conf

vai mostrar o conteudo desse arquivo

cat $PREFIX/etc/list.conf | grep ^\/

Vai pegar tudo o que começa com a letra V maiscula (é uma expressão regular)

cat $PREFIX/etc/list.conf | grep ^\/ | sort

Vai ordenar alfabeticamente o resultado

cat $PREFIX/etc/list.conf | grep ^\/ | sort | uniq

Vai omitir os resultados repetidos. Uma outra forma de conseguir fazer isso é:

grep '^\/' ${PREFIX}/etc/list.conf | sort -u

Enfim, agora que vc tem uma ideia, cada linha que vc não entendeu
necessita de um tempo de estudo. sugiro que vc execute linha a linha
desse script na mão e veja o resultado de todas as variaveis, etc.
Outra forma é executar com a opção de debug ligada

$ cat a.sh
#!/bin/bash -x

VARIAVEL=$( ls *.c | sort )

$ ./a.sh
++ ls a.c b.c code.c cpf.c test.c z.c
++ sort
+ VARIAVEL='a.c
b.c
code.c
cpf.c
test.c
z.c'

agora ficou facil de entender. certo?
-- 
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/
"what does not kill us makes us stronger"


reply via email to

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