Ich habe das folgende Shell-Skript. Der Zweck besteht darin, jede Zeile der Zieldatei (deren Pfad der Eingabeparameter für das Skript ist) zu durchlaufen und für jede Zeile zu arbeiten. Jetzt scheint es nur mit der allerersten Zeile in der Zieldatei zu funktionieren und stoppt, nachdem diese Zeile verarbeitet wurde. Stimmt etwas mit meinem Skript nicht?
#!/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"
In do_work.sh
führe ich ein paar ssh
Befehle aus.
source
und einfach beenden oder exec
. Aber dieser Code sieht nicht echt aus, das OP würde bemerken, dass das Echo den -e
Zeilenvorschub richtig anzeigen muss ...
do_work.sh
laufen ssh
durch Zufall?
do_work.sh
Quelle und laufen auch do.sh
mit set -x
zum Debuggen.