Ele irá acrescentar "sbin" 3 vezes como deveria, mas não irá repetir os "sbin" s recém-adicionados no mesmo loop.
Após o segundo exemplo:
echo "${array[@]}"
#=> etc bin var sbin sbin sbin
Eu tenho um problema com loop for no bash. Por exemplo:
Eu tenho uma matriz ("etc" "bin" "var")
.
E eu iterar nessa matriz. Mas no loop eu gostaria de acrescentar algum valor ao array. Por exemplo,
array=("etc" "bin" "var")
for i in "${array[@]}"
do
echo $i
done
Isso exibe etc
bin
var
(claro, em linhas separadas).
E se eu acrescentar depois de 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).
Isso não está funcionando. Como posso fazer isso?
set etc bin var
while [ "$#" -gt 1 ]
do [ "$1" = bin ] &&
set "$@" sbin
printf %s\n "$1"
shift;done
Isso iterará sua lista, coloque sbin
no final da lista e inclua sbin
no conteúdo iterável.