Mam problem z pętlą for w bash. Na przykład: Mam tablicę ("etc" "bin" "var")
. I iteruję na tej tablicy. Ale w pętli chciałbym dodać trochę wartości do tablicy. Na przykład
array=("etc" "bin" "var")
for i in "${array[@]}"
do
echo $i
done
Wyświetla się etc
bin
var
(oczywiście w osobnych wierszach). A jeśli dołączę później do
:
array=("etc" "bin" "var")
for i in "${array[@]}"
do
array+=("sbin")
echo $i
done
Chcę: etc
bin
var
sbin
(oczywiście na osobnych liniach).
To nie działa. Jak mogę to zrobić?
Odpowiedzi:
To będzie dołączenie „sbin” 3 razy, ile trzeba, ale nie iteracyjnego nowo dodanej „sbin” S w tej samej pętli.
Po drugim przykładzie:
źródło
for
Następnie użyj dwóch pętli. Najpierw przejrzyj swoje dodatki, a następnie przewiń wynik.array+=(sbin); for i in ...
Spowoduje to iterację Twojej listy,
sbin
warunkowo na końcu tej listy i uwzględnieniesbin
w treści iterowalnej.źródło