Enviado em 02/11/2016 - 14:42h
gostaria de saber como faço para atribuir um valor a uma variável que se encontra fora do subshell criado pelo comando pipe (|)?
como as variáveis que se encontram no interior de um subshell são "zeradas" ao seu término, preciso então criar uma variável que possa receber um valor mesmo quando esse subschell terminar.
por exemplo:
o mesmo ocorre por exemplo:
o que preciso então é definir algum tipo de variável que eu possa atribuir um valor de dentro do subshell para q o valor permaneça nessa variável mesmo depois de terminado o subshell.
por exemplo, algo neste sentido...
como as variáveis que se encontram no interior de um subshell são "zeradas" ao seu término, preciso então criar uma variável que possa receber um valor mesmo quando esse subschell terminar.
por exemplo:
ls *.pdf | while read i
do
iall+=$i" "
echo iall: $iall #exibe corretamente o valor da variável
done
echo iall: $iall #não exibe o valor da variável (pq o pipe fez o while rodar em um subshell, zerando as variáveis ao seu término
o mesmo ocorre por exemplo:
for i in *.pdf
do
iall+=$i" "
echo iall: $iall #exibe corretamente o valor da variável
done | sort
echo iall: $iall #não exibe o valor da variável (pq o pipe fez o while rodar em um subshell, zerando as variáveis ao seu término
o que preciso então é definir algum tipo de variável que eu possa atribuir um valor de dentro do subshell para q o valor permaneça nessa variável mesmo depois de terminado o subshell.
por exemplo, algo neste sentido...
iall="" #definir esta variável de alguma forma que seja acessível de dentro do laço while
ls *.pdf | while read i
do
iall+=$i" " #por enquanto o while está criando uma nova variável iall e não definindo o iall de fora do laço (é aqui que preciso encontrar uma solução p q seja definida o iall de fora do laço...)
echo iall: $iall #exibe corretamente o valor da variável
done
echo iall: $iall #não exibe o valor da variável (pq o pipe fez o while rodar em um subshell, zerando as variáveis ao seu término