Я создал файл scriptA.sh
на рабочем столе и сделал его исполняемым, вот его содержимое:
#!/bin/bash
sudo -u userA bash -c 'PACKAGE_PATH=/home/userA/package1; cd /home/userA/scripts'
Я хочу дважды щелкнуть по нему, чтобы открыть терминал, запустить две команды в нем и оставить терминал открытым. Но что на самом деле происходит после двойного щелчка и выбора run with terminal
опции, терминал открывается на секунду, а затем закрывается. Я не знаю, почему это происходит, поэтому буду признателен, если кто-нибудь сможет подсказать, почему это происходит и как это преодолеть.
решение1
Вы, вероятно, захотите использовать, 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
В общем, у меня это отлично работает. Терминал gnome принимает параметры, так что вы можете менять различные настройки.
Используйте --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
По умолчанию, когда вы выбираете опцию «запустить в окне терминала», окно терминала (gnome-) закрывается после завершения. Этоделаетоткрыть, раз уж ты упомянул, что он открывается на секунду. Ты можешь сделать этооставатьсяоткройте, изменив настройку в профиле вашего терминала:
В меню (gnome-terminal) выберите «Правка» > «Настройки профиля» > «Заголовок и команда». В опции «При завершении команды» выберите «Удерживать терминал открытым».
Это должно сработать.