scriptA.sh
デスクトップに を作成し、実行可能にすると、その内容は次のようになります。
#!/bin/bash
sudo -u userA bash -c 'PACKAGE_PATH=/home/userA/package1; cd /home/userA/scripts'
これをダブルクリックしてターミナルを開き、その中で 2 つのコマンドを実行してターミナルを開いたままにしたいのですが、ダブルクリックしてrun with terminal
オプションを選択すると、ターミナルが 1 秒間開いてから閉じてしまいます。なぜこのようなことが起こるのかわかりませんので、なぜこのようなことが起こるのか、またどのように解決すればよいのかを教えていただけると幸いです。
答え1
gksudo
デスクトップから起動したい場合は、を使用することをお勧めします。パスワードを求めるウィンドウが開きます。
#!/bin/bash
gksudo -u userA bash -c 'PACKAGE_PATH=/home/userA/package1; cd /home/userA/scripts'
また、デバッグするには、まずターミナルでそのスクリプトを実行する必要があります。そうすれば、エラー メッセージを出力した直後にスクリプトが閉じることはありません。
アップデート
これを行う 1 つの方法は、次のようにファイルを作成することです。
/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) メニューから、「編集」>「プロファイル設定」>「タイトルとコマンド」を選択します。「コマンドの終了時」オプションで、「ターミナルを開いたままにする」を選択します。
それはうまくいくはずです。