web-dev-qa-db-ja.com

ルート権限でランチャーからシェルスクリプトを実行する

Ubuntu 12.04でGUIアプリケーションを実行するシェルスクリプトがあります。

私が現在アプリケーションを実行している方法は、ターミナルを開いてそのファイルが含まれるディレクトリに移動し、Sudo ./shellScriptFileNameを実行することです。しかし、2つの問題があります。 time だからランチャーにショートカットを追加したい、2番目は端末を開いたままにする必要があることであり、これは痛みです(うまくいけば、実行できたらこれは問題にならないでしょう)ランチャーから。

明確化:アプリケーションの実行開始時に端末を閉じたい。

3
Roronoa Zoro

この問題はまだ解決していないようですが、上記のコメントで提供した「方法」リンクにアクセスしましたか? クリックミー

この問題をいくつかの方法で解決する必要があることを確認すると、クールでナイスです。簡単にするために、「ダミー」の方法をお勧めします。

  1. 端末を開いてSudo apt-get install gnome-panelと入力します
  2. インストールが完了したら、gnome-desktop-item-edit --create-new ~/Desktopと入力します。このコマンドは、次のようにポップアップの[ランチャーの作成]ダイアログを表示します enter image description here

    設定をカスタマイズします(名前、コマンド、アイコンなど)

  3. ステップ2の後、ショートカット(実際には* .desktopという名前で、設定によって異なります)が表示されます。必要に応じて任意のフォルダーに入れてから、ランチャーにドラッグアンドドロップします。

それだけです。新しい焼きたてのショートカットをお楽しみください:-)。

1
vicd

手順は次のとおりです。

1.インタラクティブな呼び出し元スクリプトの作成

スクリプトを実行してからターミナルを使用をインタラクティブモードのままにするため、特別な呼び出し元スクリプトを使用する必要があります。これにはexpectが必要です。実行するスクリプトはtest.shと呼ばれると仮定します

  • Sudo apt-get -y install expectexpectをインストールします
  • 次の形式で呼び出し元スクリプトを作成します。

    #!/ usr/bin/expect -f 
     
     spawn -noecho bash#シェルを作成
     expect "$"#プロンプトを待つ
     send "cd/path to script\n"#スクリプトディレクトリ
     send "./test.sh\n"#スクリプト名
     interact#インタラクティブモードに切り替え
    
  • call_test.shなどの呼び出し元スクリプトを実行可能にします。

    Sudo chmod +x /path/to/call_test.sh

2.ランチャーの作成

  • Alt+F2を押し、gksudo gedit /usr/share/applications/TestSH.desktopと入力します。ここで、TestSHは、ランチャーアイコンを呼び出す名前です。
  • ファイルの形式は次のとおりです。

     [デスクトップエントリ] 
     Version = 1.0#スクリプトバージョン
     Type = Application 
     Terminal = true#端末が必要なため、... 
     StartupNotify = true 
     Icon =#は組み込み(/usr/share/icons)
    #またはカスタムファイル、SVGまたはPNG 
     Name = TestSH#にすることができます#呼び出したいものは何でも
     Comment =#description 
     Exec =/path/to/call-test.sh#呼び出し元スクリプトへのパス
     Categories = Application; 
    
  • 最後に、Sudo chmod +x /path/to/test.shを使用して、実際のスクリプトが実行可能であることを確認します

  • エディターを閉じて、HUDで「TestSH」(スクリプト名)を検索します。アイコンをクリックし、ランチャーまたはデスクトップにドラッグしてそこに追加できます。
2
ish

ターミナルをその後開いたままにすることはあまりスムーズなプロセスではありませんが、ここに私が提案するものがあります:

次の内容の新しいスクリプトを作成します:gksudo /path/to/Shell/scriptおよびデスクトップに保存します。ターミナルをランチャーに追加します。プログラムを開くには、ランチャーからターミナルを開き、デスクトップからターミナルにスクリプトをドラッグします。

または、プログラムの終了後に端末を必ずしも開く必要がない場合は、上記のスクリプトを作成し、任意のディレクトリに保存し、このガイドに従ってランチャーアイコンに変換します。 http:// ubuntuforums.org/showthread.php?t=1700605

そのプロセスが少しスムーズになればいいのですが、ちょっと、Kubuntuを使用する理由は...

1
Richard