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-terminal 接受参数,因此您可以更改各种设置。
用来--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) 菜单中选择“编辑”>“配置文件设置”>“标题和命令”。在“当命令退出时”选项中选择“保持终端打开”。
那应该可行。