Мне трудно выполнить набор командных строк, хранящихся в виде строк в массиве. Мой код выглядит так:
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
Когда он перебирает массив, массив становится больше, чем количество хранимых в нем команд. Как будто пробелы в моих строках разбивают массив на большее количество элементов Типичный вывод такой как
usage: sudo -h | -K | -k | -L | -V
Это означает, что из строки берется только 'sudo' и я не понимаю почему!
Спасибо