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 (|)?
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
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
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