У меня есть сценарий запуска, который открывает несколько программ в каждой рабочей области. Я хочу сделать некоторые вещи в первой рабочей области, прежде чем она продолжит открывать программы в следующих рабочих областях. Как мне предложить продолжить? Я пробовал использовать gnome-terminal -e "bash -c \" read -s -p 'Нажмите Enter, чтобы продолжить ...' \ ""
, но это не останавливается, скрипт продолжает выполнение хотя я не использовал и
для перевода процесса в фоновый режим.
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
Я понятия не имею о gnome-terminal
, но если я запускаю свой xfce4-terminal
с уже запущенного терминала, он немедленно превращается в отдельный процесс, так что управление может быть возвращено вызывающей оболочке, т.е. предыдущая оболочка будет принимать новые команды, пока работает новая.
Я считаю, что gnome-terminal
ведет себя точно так же, поэтому ваш сценарий, похоже, не останавливается и не ждет.
Вместо этого вы можете использовать стандартный xterm
, который не выполняет разветвление и, таким образом, блокирует вызывающий скрипт. Выглядит это не так красиво, но вполне подойдет как простое предупреждение о блокировке.
Вы также можете посмотреть gxmessage
, xmessage
или zenity
.