linha de comando:
for each in path_to_directory/a*.sh ; do bash $each ; done
exemplo:
:~$ ll | grep \.sh
-rw-rw-r-- 1 user user 1476 Май 25 16:07 123.sh
-rw-rw-r-- 1 user user 1176 Май 25 16:09 222.sh
-rw-rw-r-- 1 user user 419 Май 20 14:03 2.sh
-rw-rw-r-- 1 user user 191 Май 20 17:50 3.sh
-rw-rw-r-- 1 user user 9 Июн 2 11:53 a1.sh
-rw-rw-r-- 1 user user 9 Июн 2 11:53 a2.sh
i:~$ cat q1.sh
echo sadf
:~$ cat a1.sh
echo 123
:~$ cat a2.sh
echo 234
:~$ for each in ./a*.sh ; do bash $each ; done
123
234
OU você pode usar um utilitário de linha de comando chamado run-parts. Essa ferramenta pode descobrir automaticamente vários scripts ou programas em um diretório e executá-los todos.
Por exemplo, para executar todos os scripts em / etc cujos nomes começam com 'a' e terminam com '.sh':
$ run-parts --regex '^a.*\.sh$' /etc
Com a opção "--test", você pode imprimir os nomes dos scripts que seriam executados, sem executá-los. Isso é útil para fins de teste
$ run-parts --test ./my_script_directory