Выполненный в терминале не работа

Я плохо знаком с Ubuntu, и я пытался запустить этот скрипт:

#!/usr/bin/env bash
echo hello world

Это хорошо работает, если я открываю терминал сначала и вручную вызываю его. Как ./test.
Я установил, "Спросите каждый раз" в файле prefs: enter image description here

Это также хорошо работает: enter image description here

Теперь я нажимаю Run в терминале. И Lo! Ничего не происходит.
Я ожидаю, что это откроет терминал и эхо привет мир. Что я делаю неправильно? Это - новая установка человечности наряду с окнами с веб-сайта человечности.

4
задан 7 July 2016 в 17:32

1 ответ

Ваша проблема:

проблема состоит в том, что echo hello world выполняется в миллисекундах, быстрее, чем окно терминала может открыться.

Это означает, что Ваш сценарий уже выходит, прежде чем терминал видим, и поэтому его запуск отменяется, и Вы ничего не видите.

Решение 1 - изменяет сценарий и добавляет задержку:

можно добавить задержку (здесь: 5 секунд) в конце Вашего сценария так, чтобы это работало дольше и у Вас есть время для просмотра результата перед выходами сценария, и окно терминала закрывает себя:

#!/usr/bin/env bash
echo hello world
sleep 5

Решение 2 - изменяет сценарий и ожидает нажатия клавиши:

можно также добавить read команда в конец сценария для ожидания ввода с клавиатуры перед выходами сценария.

-s параметр вызывает тихий вход, т.е. Ваша нажатая клавиша не будет отражена к терминалу.
-n1 позволяет ему только для чтения один отдельный символ и возвращается сразу впоследствии вместо того, чтобы ожидать , Входят , который будет нажат.
-p "Press any key to exit..." аргумент на самом деле указывает текст для печати прежде, чем ожидать входа.

#!/usr/bin/env bash
echo hello world
read -s -n1 -p "Press any key to exit..."

Решение 3 - изменение gnome-terminal предпочтение для хранения окна открытым:

Запуск gnome-terminal окно, откройте меню Edit и выберите предпочтения Профиля . Перейдите к вкладка Commands . Вы будете видеть, что выпадающее меню маркировало When выходы команды:

enter image description here

Выбор Содержит терминал, открывают здесь и закрывают окно настроек.

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

enter image description here

Предупреждение!
Эта установка также применяется при ручном открытии окна терминала и попытки закрыть ее путем выхода из Bash с помощью эти exit команда или Ctrl + D - я нахожу это довольно раздражающим, который окно терминала не закрывает больше затем также.

8
ответ дан 1 December 2019 в 09:07

Другие вопросы по тегам:

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