Ich habe Probleme mit der Iteration durch mein Skript in meinem Index. Das Problem scheint zu sein, dass man es ausführt, es iteriert nur über den ersten Index meiner $ @ -Liste. Ich denke, es stoppt und wartet auf eine Änderung, bevor es mit der nächsten Datei fortfährt. Der Punkt meines Indexes ist es, mehrere Dateien gleichzeitig mit meinem "single file script" zu durchsuchen. Wenn ich meine Datei ändere, geht es weiter zum nächsten Index, aber nicht, wenn ich es lasse. Ich hoffe, ich habe mich klar ausgedrückt. Vielen Dank!bash-looping durch Dateiargumente mit Subshell
Script 1:
#!/bin/bash
timestamp() {
date +"%T"
}
FILE=$1
timeer=$(stat -f "%Sm" $FILE)
myDate=$(date +%b" "%d" "%H:%M:%S" "%Y)
if [ -f $FILE ]; then
timestamp
echo "Filen{$FILE} ble opprettet"
fi
while :
do
Atimeer=$(stat -f "%Sm" $FILE)
if [[ "$Atimeer" != "$timeer" && -f $FILE ]]; then
timestamp
echo "Filen ble endret!!!"
exit 130
fi
if [ ! -f "$FILE" ]; then
echo "Filen {$FILE} ble slettet.."
exit 130
fi
done
Skript 2:
#!/bin/bash
if [ $# -lt 1 ]; then
echo "Not enough arguments, Call this script with"
echo "Write: ${0} <file.name>"
exit 1
fi
while :
do
for i in "${@}"
do
echo $i
sh filkontroll.sh "$i"
done
sleep 3
done
BTW läuft es für immer im Hintergrund? Denn mein Mac läuft momentan sehr intensiv. Ich lief "top" im Terminal und ich sah vier Sh-Prozesse gehen, auch nachdem ich das Skript beendet habe? – ruubel
@ruubel es wird im Hintergrund laufen, bis es entweder natürlich oder getötet wird beendet. In deinem Skript könntest du eine Menge davon bekommen, da du sie alle startest, warte 3 Sekunden, dann starte sie alle wieder und mache es kontinuierlich Wenn es länger als 3 Sekunden dauert, bis einer von ihnen fertig ist, wirst du mehr und mehr bekommen bis das System einfach nicht mehr mithalten kann –
Ooh ich bekomme es! Nein, ich habe es auf 60 Sekunden geändert. Kann ich einen Kill-Schalter im Skript verwenden oder wie soll ich sie abbrechen, wenn ich fertig bin? – ruubel