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

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

Re: [shell-script] Parameter Expansion


From: Thobias Salazar Trevisan
Subject: Re: [shell-script] Parameter Expansion
Date: Thu, 12 Jun 2003 11:03:23 -0300 (BRT)

ae mauricio,

On Thu, 12 Jun 2003, Mauricio B. C. Vieira wrote:

>   o problema é que quando executo em shell, pra testar, ele coloca o
>   valor em VARIAVEL, mas também executa valor
>
>   vieira@cidoque:~$ ${VARIAVEL:=valor}
>   bash: valor: command not found

sim, pois, após a expansão o shell irá executar o cmd.
Para teste faça:

prompt> ${x:=ls}

ou em bash ou ksh

prompt> ${X=echo nada}
nada

>   e não é nada prático fazer VARIAVEL=${VARIAVEL:=valor}
>   A pergunta é: tem uma forma de fazer isto (usar o ':=' ) sem executar
>   o valor? (não vale VARIAVEL=${VARIAVEL:=valor} )

podes usar o :, que é o comando true. Ele "não faz nada" e
retorna sempre zero.

prompt> : ${VAR:=valor}
prompt>

Assim, após a expansão ficará

prompt> : valor
prompt>

>   A segunda pergunta é: isto funciona no sh (é portavel)?

funciona. pelo menos no sh do SunOS 5.7

a diferença entre o := e o :-
O := atribui e retorna o valor caso VAR não seje especificado,
e o :- apenas retorna o valor.

prompt> echo ${var:-valor}
valor
prompt> echo $var

prompt> echo ${var:=valor}
valor
prompt> echo $var
valor
prompt>

falow

thobias
-------
echo 9446046325380026818553633794429812592304650P | dc
-------
http://www.lcp.coppe.ufrj.br/~thobias

____________________________
|
| Against - HTML Mail
| Against - MS ATTACHMENTS
|
----------------------------



reply via email to

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