Se o seu arquivo contiver os nomes dos próprios scripts, em vez de usar o código, você poderá fazer isso com facilidade e segurança:
while read -r -u 9
do
. "$REPLY"
done 9< scripts.txt
Como acontece com a maioria dos hacks de script, há muitas ressalvas para isso (e ainda mais se você tiver read
código e eval
it):
- Se o descritor de arquivo 9 (
-u 9
) for usado para qualquer coisa em qualquer um dos scripts, todas as apostas estarão desativadas. - Se qualquer um dos scripts definir quaisquer variáveis, esse contexto não será eliminado.
- Quando a última linha de scripts.txt for lida, o loop termina.
Uma solução melhor seria executar os scripts que você lê, simplesmente removendo o ponto. Para que isso funcione, os caminhos de script precisam conter pelo menos uma barra, ou os scripts precisam estar no seu PATH
.