Eu tenho um problema com o loop for no bash. Por exemplo: eu tenho uma matriz ("etc" "bin" "var")
. E eu itero nessa matriz. Mas, no loop, gostaria de acrescentar algum valor ao array. Por exemplo
array=("etc" "bin" "var")
for i in "${array[@]}"
do
echo $i
done
Isso é exibido etc
bin
var
(é claro em linhas separadas). E se eu acrescentar depois do
assim:
array=("etc" "bin" "var")
for i in "${array[@]}"
do
array+=("sbin")
echo $i
done
Eu quero: etc
bin
var
sbin
(é claro em linhas separadas).
Isto não está a funcionar. Como eu posso fazer isso?
Respostas:
Ele irá acrescentar "sbin" 3 vezes como deveria, mas não vai repetir os "sbin" recém-adicionado é no mesmo loop.
Após o segundo exemplo:
fonte
for
loops então. Primeiro, execute suas adições e, em seguida, faça um loop sobre o resultado.array+=(sbin); for i in ...
Isso irá percorrer sua lista, aderir
sbin
ao final da lista de forma condicional e incluirsbin
no conteúdo iterável.fonte