Tengo dificultades para ejecutar un conjunto de líneas de comando almacenadas como cadenas en una matriz. Mi código es el siguiente:Ejecutar una matriz de cadena que describe el comando de shell
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
Cuando se recorre el array, la matriz es mayor que el número de orden almacenada en él. Como si los espacios en blanco en mis cadenas se reparten el array en más elementos Un ouput típico es tal como
usage: sudo -h | -K | -k | -L | -V
Eso significa que sólo 'sudo' está tomada desde dentro de la cadena y no entiendo por qué!
Gracias
¿Puede mostrar cómo se configura/usa 'loc_com'? – chown
como dijo chown, puedes poner un echo $ {loc_com [$ i]} antes de llamarlo. – aayoubi
¿Puede por favor publicar un caso de prueba que podría funcionar sin editar? –