Ich bin neu in Skripting in Bash; Ich möchte einen Prozess ausführen, der für immer ausgeführt wird (d. h. Gulp) und ihn beim Drucken zum Anzeigen einer Zeile anhält.Bash-Skript, stoppe einen Prozess für immer, wenn eine Zeile gedruckt wird
In meinem Fall, wenn ich Gulp beginne, druckt es Tausende von Zeilen (es dauert etwa 20 Sekunden), dann bleibt es in Wartestellung; die letzte Zeile gibt es immer
[Browsersync] Serving files from: src
Ich habe versucht, mein Ziel mit diesem Skript zu erreichen:
cd ~/mydir
gulp serve &
while read -r line; do
if [ "$line"=="[Browsersync] Serving files from: src" ]; then
echo 'pid of Gulp before killing it is : ' `pidof gulp`
# Get its PID
PID=$!
kill -INT $PID
echo 'pid of Gulp now is : ' `pidof gulp`
fi
done
Aber dies nicht zu stoppen schluck Prozess. Was mache ich falsch?
EDIT: Beachten Sie, dass dies nur ein Teil des gesamten Skripts ist.
es mit if [ "$ line" = "[Browsersync] Serving-Dateien aus: src"] nicht funktioniert; und if ["$ line" = "[Browsersync] Dateien von: src"]; entweder – Diego