Primeiro, você quase nunca deve usar ${ARRAY[*]}
, com ou sem aspas. Em quase todas as situações, você deve usar "${ARRAY[@]}"
( com as aspas duplas). Segundo, você deve usar nomes de variáveis em minúsculas ou em letras maiúsculas para evitar usar acidentalmente um nome que signifique algo especial para o shell ou um dos programas executados a partir dele.
Agora, para sua pergunta real: você está tentando executar watch
uma vez e passar a lista completa de elementos na matriz, ou deseja executá-la separadamente para cada elemento, um por vez, ou executar uma instância separada de watch
para cada elemento de uma só vez? Para executá-lo uma vez com a lista completa, use:
watch "${array[@]}"
Para executá-lo separadamente em cada elemento, um de cada vez, use:
for element in "${array[@]}"; do
watch "$element"
done
Para executá-lo separadamente em cada tipo de elemento de uma vez, use &
para evitar esperar que cada comando watch
termine antes de iniciar o próximo:
for element in "${array[@]}"; do
watch "$element" &
done
wait # this waits for all of the 'watch' processes to exit before continuing through the script