Ubuntuランチャーの相対パスでシェルを実行する

Ubuntuランチャーの相対パスでシェルを実行する

シェルを実行するこのランチャーを作成しました:

[Desktop Entry]
Version=1.0
Type=Application
Terminal=true
Exec=/full/path/server.sh
Name=MServer
Comment=foo
Icon=gnome-sudoku

完全なパスがわからないため、相対パスを実行する必要があります。

Exec=server.sh

しかし、相対パスを使用した上記のコードは機能しません。相対パスから実行するにはどうすればよいですか?

答え1

役職@FedonKadifeli さんの提案が役に立ちました。

考えられる解決策は次のとおりです。

Exec=sh -e -c "exec \\"\\$(dirname \\"\\$0\\")/.sh/server.sh\\";$SHELL" %k

コマンドの説明:

以下のスニペットは、それを実行している人のディレクトリ名、つまりランチャーのディレクトリ名を取得します。

$(dirname \\"\\$0\\")

したがって、目的のパスを追加すると、相対パスが実行されるようになります。

関連情報