Wie man einen Job in den Vordergrund bringt und Benutzereingaben vom Terminal aus erlaubt
Ähnlich wie diese Frage, aber in einer wichtigen Hinsicht anders: Ich muss eine Reihe von Jobs mit einem Skript starten und sie im Hintergrund ausführen. Um sie zu verwalten oder ihren Fortschritt zu überprüfen, muss ich sie in den Vordergrund bringen und Benutzereingaben zulassen.
Was ich gerade mache, ist:
Starten Sie eine Reihe von Jobs in einer Schleife, z
for ip in $(cat ip-list.txt); do run-job.sh $ip &; done
Bringen Sie einen einzelnen Job in den Vordergrund mit z
fg 1
Dies bringt einen Job in den Vordergrund, jedoch gibt es zwei Probleme: Ich kann keine Benutzereingaben bereitstellen - der Prozess reagiert nicht, als wäre der Prozess, der meine Eingabe empfängt, das Skript, mit dem der Job gestartet wurde, und nicht der Job selbst; Auch die Variable $ ip wird nicht ausgewertet angezeigt, dh genau als "$ ip" statt "192.168.1.34". Wenn ich jedoch 'jobs' eingebe, werden alle 10 Jobs separat aufgeführt (aber alle sehen genau gleich aus: "run-job.sh $ ip". Ich muss ps verwenden, um zu sehen, welcher Job welchen IP-Wert verwendet.)
Das Verhalten, das ich möchte, ist dasselbe wie das, was ich bekommen würde, wenn ich alle diese Jobs anfangen würde, indem ich sie einzeln eintippe und dann Control-z drücke, um sie in den Hintergrund zu stellen. Wenn ich es auf diese Weise mache, wenn ich sie mit fg in den Vordergrund bringe, erlauben sie die Benutzereingabe direkt in den Prozess, und auch die Variable $ ip wird als "192.168.1.34" ausgewertet angezeigt. Das manuelle Eintippen der Jobs ist jedoch für Dutzende oder Dutzende von Jobs nicht möglich.
0 Antworten auf die Frage
Verwandte Probleme
-
1
Pausieren Sie alle Aufgaben außer x CPU-intensiven Aufgaben
-
10
Wie kann ich die Bash-Historie durchsuchen und einen Befehl erneut ausführen?
-
2
Kann die Ausgabe eines Befehls an zwei andere Befehle weitergeleitet werden?
-
8
Benennen Sie eine Gruppe von Dateien mit einem Befehl um
-
2
Warum aktualisiert sich mein Pfad nicht * jetzt *?
-
5
Wie entferne ich einen symbolischen Link zu einem Verzeichnis?
-
8
Rette mich vor dem Kauderwelsch
-
9
Wie kann ich jeder Zeile einer Textdatei eine Zeilennummer und einen Tabulator voranstellen?
-
1
Wann sollte ich Konfigurationen in .bashrc vs einfügen? .bash_profile?
-
1
Umleitung: Wie kam das zusätzliche Wort in die Datei?