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

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

Re: [shell-script] Array deixa de existir após fim de loop


From: Julio C. Neves
Subject: Re: [shell-script] Array deixa de existir após fim de loop
Date: Wed, 6 Dec 2017 20:21:42 -0200

Sim, não só um pipe, mas tb parênteses, crases, ...

Faça estes 2 testes:

$ Var=5; (echo Var começou = $Var; Var=8; echo No subshell passou a valer $Var); echo Saindo do subshell, volta a ser = $Var
$ echo -e "estão logados $(Var=$(who | wc -l)) $Var pessoas\n     Mas este é o valor anterior de Var, o certo seria $(who | wc -l)"

 

Abraços,
Julio
* Atenção! Últimos treinamentos presenciais do ano! *
Cidade Local Período
Brasilia LinuxSolutions 27/11-01/12
São Paulo 4Linux 05-09/12
Rio de Janeiro LinuxSolutions 11-15/12

Damos treinamento em sua empresa com certificado
e nota fiscal por um preço, no mínimo, 50% mais
barato que qualquer curso.

​​
Nosso time de instrutores in company é formado somente por
autores
​ ​
de Best Sellers
​ ​
​laureados ​sobre os temas. P. exemplo:

Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico







Em 6 de dezembro de 2017 07:31, Rodrigo Tenorio address@hidden [shell-script] <address@hidden> escreveu:
 

Mestre,

O pipe gera um subshell qualquer situação?
Por exemplo num: cat txtFile | grep anything

Grato,
Boëchat

Em 5 de dezembro de 2017 19:35, 'Julio C. Neves' address@hidden [shell-script] <address@hidden.br> escreveu:
 

Vou repetir o e-mail pq o corretor pornográfico do telefone esculhambou tudo:
Alfredo, tire o "cat input |" do início e no done ponha:

done < input

O pipe gera um subshell e tudo que foi criado e alterado nele desaparece qdo ele morre.

Em 5 de dez de 2017 18:22, "Julio C. Neves" <address@hidden> escreveu:
Alfredo, tire o cat input | do início e no fone ponha
done < input
O pior gera um subshell e tudo que foi criado e alterado nele desaparece qdo ele morre.

Em 5 de dez de 2017 13:32, "Alfredo Casanova address@hidden [shell-script]" <address@hidden.br> escreveu:
 

Alguém sabe dizer o motivo? Não encontrei explicação:

cat input
A|1.1.1.1
B|2.2.2.2
C|3.3.3.3
D|4.4.4.4

cat input | while IFS=\| read letra numero; do
   letras+=($letra);
   numeros+=($numero);
   echo "${#letras[@]}: ${letras[@]}";
   echo "${#numeros[@]}: ${numeros[@]}";
done ;
echo "--${numeros[@]}--";
echo "--${letras[@]}--"

1: A
1: 1.1.1.1
2: A B
2: 1.1.1.1 2.2.2.2
3: A B C
3: 1.1.1.1 2.2.2.2 3.3.3.3
4: A B C D
4: 1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4
----
----




reply via email to

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