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

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

[no subject]



>From address@hidden Wed Jul 23 08:39:28 2008
Return-Path: <address@hidden>
X-Sender: address@hidden
X-Apparently-To: address@hidden
X-Received: (qmail 8184 invoked from network); 23 Jul 2008 15:39:27 -0000
X-Received: from unknown (66.218.67.96)
  by m48.grp.scd.yahoo.com with QMQP; 23 Jul 2008 15:39:27 -0000
X-Received: from unknown (HELO ug-out-1314.google.com) (66.249.92.170)
  by mta17.grp.scd.yahoo.com with SMTP; 23 Jul 2008 15:39:26 -0000
X-Received: by ug-out-1314.google.com with SMTP id a2so823884ugf.27
        for <address@hidden>; Wed, 23 Jul 2008 08:39:25 -0700 (PDT)
X-Received: by 10.103.239.5 with SMTP id q5mr107203mur.58.1216827565282;
        Wed, 23 Jul 2008 08:39:25 -0700 (PDT)
X-Received: by 10.102.247.18 with HTTP; Wed, 23 Jul 2008 08:39:25 -0700 (PDT)
Message-ID: <address@hidden>
Date: Wed, 23 Jul 2008 12:39:25 -0300
To: address@hidden
In-Reply-To: <address@hidden>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
References: <address@hidden>
X-Originating-IP: 66.249.92.170
X-eGroups-Msg-Info: 1:12:0:0:0
From: "Tiago Barcellos Peczenyj" <address@hidden>
Subject: =?ISO-8859-1?Q?Re:_[shell-script]_Bash_simplesme?= 
=?ISO-8859-1?Q?nte_fecha_em_fun=E7=E3o_de_um_comando.?=
X-Yahoo-Group-Post: member; u=204465305; 
y=6g85D2ECyYUTyBpJq9gh57b9LUeiHr56JuGkBefpHO0nQXbkNow
X-Yahoo-Profile: grande_uosh

Vejamos o seu codigo

cat /etc/gentoo-release < <(tr [a-z] [A-Z])

=E9 o mesmo que

cat /etc/gentoo-release < ARQUIVO_QUALQUER

que =E9 o mesmo que

cat  ARQUIVO_QUALQUER | cat /etc/gentoo-release

o q vc esta fazendo ai: vc esta executando o programa cat com um
argumento, um nome de arquivo e informando o conteudo desse
ARQUIVO_QUALQUER na entrada padr=E3o. o cat s=F3 l=EA a entrada padr=E3o em=
 2
casos:

1) se vc n=E3o informa nenhum arquivo como argumento
2) se vc informa um arquivo de nome -

Ent=E3o isso:
cat  ARQUIVO_QUALQUER | cat /etc/gentoo-release

Equivale a isso

cat /etc/gentoo-release

Agora vamos ver o que =E9 o misterioso ARQUIVO_QUALQUER

Fazer <(tr [a-z] [A-Z]) =E9 o mesmo que <(comando) e vc cria um named
pipe com o resultado desse comando.

ex:
cat -n <(ls)

=E9 a mesma coisa que ls | cat -n  porem o cat, nesse caso, =E9 executado
no shell pai e n=E3o num subshell (isso pode ser util em alguma
situa=E7=E3o!!).

ent=E3o, se <( ... ) gera um named pipe, que se comporta como um arquivo
que s=F3 pode ser lido uma unica vez, e o conteudo =E9 o resultado do
comando, qual o resultado do comando

 tr [a-z] [A-Z]  ?

Em primeiro lugar, [A-Z] =E9 uma mascara, isto =E9, se vc tiver um arquivo
com uma unica letra maiscula como nome, vc n=E3o vai ter [A-Z] e sim vai
ter aquela letra

$ echo tr [a-z] [A-Z]
tr [a-z] [A-Z]
$ touch a A  # crio arquivos 'a' e 'A'
$ echo tr [a-z] [A-Z]
tr a A A   # tb n=E3o entendi pq A foi repetido aqui... JULIO HELP!

ent=E3o o certo eh

tr '[a-z]' '[A-Z]'  assim os argumentos ficam protegidos!!

ok, mas o que faz esse tr?? o tr espera uma sequencia de caracteres na
entrada padr=E3o, e vai troca-los de acordo com as regras que receber!

porem vc n=E3o pode usa-lo dentro de um <() simplesmente pois vc n=E3o deu
NADA para o tr na entrada padr=E3o dele.

<(tr op=E7=F5es)  da erro

<(tr op=E7=F5es < arquivo)  funciona
<(cat arquivo | tr op=E7=F5es) tb funciona

Porem o que eu quis dizer =E9 que vc pode economizar todos esse <() e
cats com um unico

tr opcoes < arquivo_entrada > arquivo_saida

facil n=E9?

agora fica a dica para vc usar

tr '[:lower:]' '[:upper:]'

=E9 mais "profissional" ;-) pois vc usa as classes posix

Boa sorte!

2008/7/23 Felipe <address@hidden>:
> Bom dia, lista.
>
> Estou executando o seguinte comando:
>
> cat /etc/gentoo-release < <(tr [a-z] [A-Z])
>
> E na realidade o que acontece =E9 que: quando o executo, o terminal
> simplesmente fecha. Pluft, fechou.
>
> Alguem saberia me dizer por qual motivo a bash teve essa rea=E7=E3o ?
>
>=20



--=20
Tiago B Peczenyj
Linux User #405772

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


reply via email to

From: Unknown
[Prev in Thread] Current Thread [Next in Thread]