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 終端機)選單中,選擇“編輯”>“設定檔設定”>“標題和命令”。在“命令退出時”選項中選擇“保持終端開啟”。
那應該有效。