
Ich habe ein Startskript, das in jedem Arbeitsbereich einige Programme öffnet. Ich möchte einige Dinge im ersten Arbeitsbereich erledigen, bevor es mit dem Öffnen der Programme in den nächsten Arbeitsbereichen fortfährt. Wie kann ich zum Fortfahren auffordern? Ich habe versucht, es zu verwenden, gnome-terminal -e "bash -c \"read -s -p 'Press enter to continue...'\""
aber es stoppt nicht. Das Skript wird weiterhin ausgeführt, obwohl ich es nicht verwendet habe, &
um den Prozess in den Hintergrund zu verschieben.
wmctrl -n 2
sleep 2
wmctrl -s 0
sleep 1
if command -v "firefox" > /dev/null 2>&1; then
firefox &
fi
gnome-terminal -e "bash -c \"read -n1 -sp 'Press enter to continue...'\""
# sleep 30
wmctrl -s 1
sleep 1
if command -v "firefox" > /dev/null 2>&1; then
firefox --new-window &
fi
Antwort1
Ich habe keine Ahnung gnome-terminal
, aber wenn ich meinen xfce4-terminal
von einem bereits laufenden Terminal aus starte, verzweigt er sich sofort in einen eigenständigen Prozess, sodass die Kontrolle an die aufrufende Shell zurückgegeben werden kann, d. h. die vorherige Shell akzeptiert neue Befehle, während die neue ebenfalls ausgeführt wird.
Ich glaube, es gnome-terminal
verhält sich genauso, weshalb Ihr Skript anscheinend nicht anhält und wartet.
Sie könnten stattdessen den Standard verwenden xterm
, der sich nicht selbst aufspaltet und somit das aufrufende Skript blockiert. Das sieht zwar nicht so hübsch aus, reicht aber als einfacher Blockalarm aus.
Sie können auch einen Blick auf oder werfen gxmessage
.xmessage
zenity