Próbuję wykonać zestaw wierszy poleceń przechowywanych jako ciągi w tablicy. Mój kod wygląda następująco:Wykonaj tablicę ciągów opisujących polecenie powłoki
arr=("sudo apt-get update" "sudo apt-get install xxx")
...
arr=(${arr[@]} "ln -s /path1 /path2")
etc...
# Then I loop on the array of command
for ((i = 0 ; i < ${#arr[@]} ; i++))
do
eval ${arr[$i]}
done
Gdy pętle na tablicy, tablica jest większa niż liczba polecenia przechowywanych w nim. Jakby puste przestrzenie w moich strun podzielić tablicę w więcej elementów Typowym ouput jest taki jak
usage: sudo -h | -K | -k | -L | -V
Oznacza to, że tylko „sudo” pochodzi z wewnątrz łańcucha i nie rozumiem, dlaczego!
Dzięki
Czy możesz pokazać, w jaki sposób 'loc_com' jest ustawiony/używany? – chown
, jak powiedział chown, możesz umieścić echo $ {loc_com [$ i]} przed wywołaniem go. – aayoubi
Czy możesz wysłać testową sprawę, która mogłaby działać bez edycji? –