Exécuter
. example.txt
Cela fait exactement ce que vous demandez, sans définir d'indicateur d'exécutable sur le fichier ni exécuter une instance bash supplémentaire.
Pour une explication détaillée, voir par ex. https://unix.stackexchange.com/questions/43882/what-is-the-difference-between-sourcing-or-source-and-executing-a-file-i
Vous pouvez utiliser quelque chose comme ceci :
for i in `cat foo.txt`
do
sudo $i
done
Bien que si les commandes ont des arguments (c'est-à-dire qu'il y a des espaces dans les lignes), vous devrez peut-être vous amuser un peu avec cela pour protéger l'espace blanc afin que la chaîne entière soit vue par sudo
comme une commande. Mais cela vous donne une idée sur la façon de commencer.
vous pouvez créer un script shell avec ces commandes, puis chmod +x <scriptname.sh>
, puis exécutez-le simplement par
./scriptname.sh
C'est très simple d'écrire un script bash
Fichier sh de maquette :
#!/bin/sh
sudo command1
sudo command2
.
.
.
sudo commandn
vous pouvez aussi simplement l'exécuter avec un shell, par exemple :
bash example.txt
sh example.txt