KDE4 ServiceMenus では引用符を使用する必要はありますか?

KDE4 ServiceMenus では引用符を使用する必要はありますか?

Exec=kde4 のサービス メニューの行では、通常、次を使用します。

Exec=command %f

それで、 を引用符で囲む必要があるかどうか疑問に思います。KDE4%fがメニューファイルをどのように解析するのかはわかりません。つまり、

Exec=command "%f"

答え1

行内の引数を引用符で囲んでいるスレッドをいくつか見つけましたExec=。扱っている引数にスペースが含まれている場合は引用符が必要だと思います。

たとえば、次のタイトルのスレッド:シェル スクリプトの基本。二重引用符を転送するにはどうすればいいですか?

抜粋

私は、どの unrar:s ファイルを選択したかを KDE にサービス メニュー エントリとして追加しようとしています。サービス メニュー ファイルに以下を追加します:

Exec=/usr/bin/extract 1 %U

/usr/bin/extract には次のものがあります:

if [ $1 = "1" ]; then
    unrar e "$2"
fi  
if [ $1 = "2" ]; then
    unrar x "$2"
fi   

ファイル名にスペースが含まれていない限り、正常に動作します。

したがって、次のいずれかの場合を除いて、引用符を使用しなくても問題ないと思われます。

  • スペースを含むパス
  • スペースを含むファイル名
  • スペースを含むコマンドライン引数。

関連情報