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

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

Re: [shell-script] Manter valor de variável caso atribuição seja nula


From: phfbettega
Subject: Re: [shell-script] Manter valor de variável caso atribuição seja nula
Date: Thu, 14 Sep 2017 22:59:16 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0

Olá Alfredo, se entendi direito, se o grep tiver sucesso, $var é a saída do 
grep,
senão $var é igual a $last.
Não lembrei de nenhuma expansão, mas veja se esse sed está certo.

last=nada;var=
echo -var=$var- -last=$last-
-var=- -last=nada-

# grep sucesso
var=$(sed "s/z/echo foobar|grep foo/e;s/^$/$last/" <<<z)
echo -var=$var- -last=$last-
-var=foobar- -last=nada-

# grep falha
var=$(sed "s/z/echo foobar|grep boo/e;s/^$/$last/" <<<z)
echo -var=$var- -last=$last-
-var=nada- -last=nada-

Abraços Paulo

On 14-09-2017 19:19, Alfredo Casanova address@hidden [shell-script] wrote:
Fala galera.
Surgiu uma dúvida aqui e queria saber se tem alguma forma "mais esperta" de 
resolver no bash.

Tenho um loop que atribui valor a uma variavel:
por exemplo,

while true; do
   var=$(curl -s $url | grep algumacoisa)
done

Nos casos em que esse curl / grep retorne vazio, eu poderia manter o ultimo 
valor da variavel:

last=nada
while true; do
   last=$var
   var=$(curl -s $url | grep algumacoisa)
   var=${var:-$last}
done

Existe alguma forma de simplificar isso em apenas uma linha? Alguma expansão de parâmetros ninja que eu esteja perdendo?
Esse caso serve para várias variáveis no meu loop, então simplificar isso 
ajudaria muito!

Valeu!



--------------------------------------------------------------------------------------------------------------
Enviado por: Alfredo Casanova <address@hidden>
--------------------------------------------------------------------------------------------------------------
Responder através da web


reply via email to

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