Stoppe das Skript, bis ich die Eingabetaste drücke

Stoppe das Skript, bis ich die Eingabetaste drücke

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-terminalvon 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-terminalverhä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.xmessagezenity

verwandte Informationen