J'essaie de lire les commandes à partir d'un fichier texte et d'exécuter chaque ligne à partir d'un script bash.exec line from file in bash
#!/bin/bash
while read line; do
$line
done < "commands.txt"
Dans certains cas, si $line
contient des commandes qui sont destinés à fonctionner en arrière-plan, par exemple command 2>&1 &
ils ne démarreront pas en arrière-plan, et se déroulera dans le contexte actuel de script.
N'importe quelle idée pourquoi?
Y a-t-il une raison pour laquelle vous ne pouvez pas faire "source commands.txt" au lieu d'écrire votre propre boucle? –
que fait "source"? J'essaie de le tester maintenant – Quamis
Veuillez consulter [BashFAQ/050] (http://mywiki.wooledge.org/BashFAQ/050). Ensuite, utilisez 'source' (ou' .') comme le suggère Jim Lewis. 'source' fait à peu près ce que dit la première phrase de votre question. –