сценарий оболочки, не работающий на терминале

Я создал a scriptA.sh на рабочем столе и делают это исполняемым файлом затем, это было этим довольный:

#!/bin/bash
sudo -u userA bash -c 'PACKAGE_PATH=/home/userA/package1; cd /home/userA/scripts'

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

0
задан 23 September 2014 в 06:27

2 ответа

Вы, вероятно, хотите использовать gksudo, если Вы хотите запустить его со своего Рабочего стола. Это откроет окно, прося у Вас Ваш пароль.

#!/bin/bash
gksudo -u userA bash -c 'PACKAGE_PATH=/home/userA/package1; cd /home/userA/scripts'

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

<час>

Обновление

Один способ сделать, который должен создать файл следующим образом:

/home/user_name/.gnome2/panel2.d/default/launchers/script_name.desktop

Тогда помещает что-то вроде этого в него:

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=gdu-category-peripheral
Name[en_US]=Receiving fax
Exec=gksu /usr/bin/gnome-terminal
Comment[en_US]=Some description...
Name=My Script
Comment=Start my script
Icon=gnome-panel-launcher

, Который работает отлично для меня в целом. Терминал гнома принимает параметры, таким образом, можно изменить различные настройки.

Использование --working-directory=... вместо Вашего cd ... команда. Для получения определенных переменных Вы, вероятно, хотите использовать --profile=... опция.

Exec=gksu -u userA /usr/bin/gnome-terminal --profile=/home/userA/profile --working-directory=/home/userA/scripts

Тогда создают сценарий профиля для переменной:

# In /home/userA/profile
PACKAGE_PATH=/home/userA/package1

, Очевидно, Вы могли добавить любой другой псевдоним или что-либо еще, в чем Вы нуждаетесь в сценарии профиля.

2
ответ дан 7 October 2019 в 01:49

По умолчанию, когда Вы выбираете опцию "работать в окне терминала", (гном-) завершения окна терминала после того, как она будет закончена. Это делает открытый, так как Вы упоминаете, что это открывается в течение секунды. Можно сделать его , остаются открытым путем изменения настроек это в терминальном профиле:

Из (терминального гномом) меню, выберите "Edit"> "Profile Settings"> "Title and Command". В опции "When command exits" выбирают "Hold the terminal open".

, Который должен работать.

enter image description here

2
ответ дан 7 October 2019 в 01:49

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

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