Остановить сценарий, пока я не нажму клавишу ввода

У меня есть сценарий запуска, который открывает несколько программ в каждой рабочей области. Я хочу сделать некоторые вещи в первой рабочей области, прежде чем она продолжит открывать программы в следующих рабочих областях. Как мне предложить продолжить? Я пробовал использовать 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
0
07.04.2017, 18:06
1 ответ

Я понятия не имею о gnome-terminal , но если я запускаю свой xfce4-terminal с уже запущенного терминала, он немедленно превращается в отдельный процесс, так что управление может быть возвращено вызывающей оболочке, т.е. предыдущая оболочка будет принимать новые команды, пока работает новая.

Я считаю, что gnome-terminal ведет себя точно так же, поэтому ваш сценарий, похоже, не останавливается и не ждет.

Вместо этого вы можете использовать стандартный xterm , который не выполняет разветвление и, таким образом, блокирует вызывающий скрипт. Выглядит это не так красиво, но вполне подойдет как простое предупреждение о блокировке.

Вы также можете посмотреть gxmessage , xmessage или zenity .

1
28.01.2020, 02:46

Теги

Похожие вопросы