web-dev-qa-db-ja.com

シェルスクリプトデスクトップショートカット

そこで、非常に単純なシェルスクリプトを実行するデスクトップショートカットを作成してみました。しかし、ダブルクリック/右クリック->実行すると、何もしません。 (または、少なくとも何もしないと思います)

ショートカットとシェルスクリプトの外観は次のとおりです。ショートカットの「ターミナル」が1に設定されていることに注意してください。これにより、シェルスクリプトが新しいターミナルウィンドウで開きます。使用方法(スクリプトを実行する)

ショートカット:

[Desktop Entry]
Version=1.0
Type=Application
Name=Test
Comment=Test
Exec=/home/(myusername)/test/test.sh
Icon=utilities-terminal
Terminal=true
StartupNotify=false
GenericName=Test

シェルスクリプト:

#!/bin/sh
# (I tried both, /bin/bash and /bin/sh)
echo "hi"
4
DeadSix17

デスクトップエントリとシェルスクリプトの両方に実行可能権限が必要です。行う:

$ chmod +x path_to_shortcut/shortcut.desktop
$ chmod +x path_to_script/test.sh  

スクリプトのアクセス許可を変更する別の方法は、スクリプトを右クリックして、プロパティ>事前設定に移動し、プログラムとしてのファイルの実行を許可にチェックすることです。

Permissions

6
ignite

誰かがGoogle検索からここに来た場合に備えて... 14.04では、マウントされたドライブでAndroid St​​udioを起動するシェルスクリプトを実行するのが面倒でした。多くのことを試してみましたが、何もうまくいきませんでした。最終的には、以下のコードを記述してコンパイルする必要がありました。

gcc -o studio studio.c 

次に、デスクトップから「スタジオ」へのショートカットを作成すると、ようやく正常に機能するようになります。

サンプルコードを次に示します。/bin/shの後のシステムコールでパス(/media/.../studio.sh)を置き換えることができます。完全なパスであることを確認し、「/ bin/sh」を前に残します。

#include <stdio.h>
int main(void) {
  int ret = system("/bin/sh /media/jeneag/APPS/linux/Android-studio/bin/studio.sh");
  printf("app ret code: %d\n", ret);
  return 0;
}
0
Jenya G