J'ai le script shell suivant. Le but est de parcourir chaque ligne du fichier cible (dont le chemin est le paramètre d'entrée du script) et de travailler sur chaque ligne. Maintenant, il semble que cela ne fonctionne qu'avec la toute première ligne du fichier cible et s'arrête après le traitement de cette ligne. Y a-t-il un problème avec mon script?
#!/bin/bash
# SCRIPT: do.sh
# PURPOSE: loop thru the targets
FILENAME=$1
count=0
echo "proceed with $FILENAME"
while read LINE; do
let count++
echo "$count $LINE"
sh ./do_work.sh $LINE
done < $FILENAME
echo "\ntotal $count targets"
Dans do_work.sh
, j'exécute quelques ssh
commandes.
source
et simplement quitter ou exec
. Mais ce code n'a pas l'air authentique, l'OP remarquerait que l'écho nécessite -e
d'afficher correctement le
do_work.sh
N'exécuter ssh
par hasard?
do_work.sh
source et exécuter do.sh
avec set -x
pour déboguer.