kleines bash Problem

Majek

Cadet 4th Year
Registriert
Feb. 2005
Beiträge
88
Hallo, versuche gerade den Umgang mit der bash zu erlernen und bin dabei über folgendes Problem gestolpert: Ich würde gernen einen Prozess im Hintergrund starten, dann warten und dann einen anderen Prozess beenden. Es geht übrigens um eine Stelle aus diesem Buch:
http://openbook.galileocomputing.de/linux/linux_03_shell_009.htm#mj27ced45b12fcf11c598615ac3299ee7c
Mein Befehl sieht also folgendermaßen aus:
echo "string">fifo&; sleep 5; pkill wasauchimmer
Die Shell gibt mir dann immer zurück es gäbe ein Problem mit dem Zeichen ";",
dabei klappt das Kommando wenn ich die Reihenfolge der Befehle ändere.
Es ist wohl das &; was Probleme bereitet. Bin da etwas hilflos. Außerdem scheint pkill keine jobs zu beenden?
 
Ich verstehe den Zweck Deiner Befehlszeile noch nicht so ganz: Du schreibst den String "string" in die Datei fifo. Dieses Kommando willst Du nun in den Hintergrund schicken, obwohl dieses ja praktisch keine Zeit beansprucht. Anschließend 5 Sekunden warten und dann noch ein beliebiges Programm beenden, richtig?

Nun, zu der Fehlermeldung: Das "&" ist in der Bash ein Metacharakter. Es beinhaltet quasi auch ein ";". Lass das erste Semikolon weg, dann läuft Deine Programmzeile schon.

PS: pkill beendet schon Jobs. Musst nur den richtigen Job angeben. Per Default sendet pkill glaube ich SIGTERM an den jeweiligen Prozess.
 
Zuletzt bearbeitet:
Wow, danke, ja es klappt jetzt!
Die Zeile macht keinen großen Sinn, ich weiss. Es handelt
sich um einen Teile einer Spielerei in der eine Endlosschleife
mittels einer named pipe erzeugt werden soll, und zwar mit tee fifo<fifo,
und um das ganze "anzuwerfen" wird wird der string hineinkopiert, dann meldet sich
das "endlose" tee, damit also gezählt und gekillt wird, ist echo im Hintergrund. Hmm...kann das so stimmen? :p
Wie folgt:
$ mkfifo fifo
$ tee fifo<fifo&
$ echo "String">fifo& sleep 2; pkill tee

...dann hat man halt 2 Sekunden die Konsole voller String(s)....:D
 
Zuletzt bearbeitet:
Oh ja, das tut es. Mein "kann das so stimmen?" bezog sich auf meine Erläuterung,
weswegen echo im Hintergrund gestartet werden muss. :)
 
Zurück
Oben