我通常会这样写一个 shell 脚本:
#!/bin/sh
nohup /path/to/myapp -test "$@" &
然后我可以从终端启动这个 shell 脚本,我给它的任何命令行参数都会传递给 shell 脚本,然后传递给 exec 行 myapp。我正在使用 Ubuntu,问题是 shell 脚本启动的图标不是 shell 文件的图标。它使用 myapp 的默认图标。这就是我转向 .desktop 的原因,它使启动的应用程序使用 .desktop 文件的图标。
我写了一个 .desktop 文件:
[Desktop Entry]
Name=My Ro
Type=Application
Comment=Web Application
Exec=/path/to/myapp -test @
Icon=/opt/giteye/icon.xpm
Name[en_US]=My Ro
我在 exec 行上放了一个 @ 符号,但它没有按预期工作。它没有采用我提供给 .desktop 的命令行参数,也没有将其放入 exec 行。你能帮我把 .desktop 接收到的命令行参数传递给 Exec 行吗/
最佳答案
您想要的——使用任意参数从终端打开桌面文件——并不是 .desktop 文件的使用方式。
参数中只允许某些变量,基本上对应于类似桌面的操作:打开文件等。例如,如果这就是您想要的,您可以对文件使用 %f
等代码,然后使用 UI 将文件拖到应用程序上。
配置应用程序的另一种方法是使用桌面操作,它本质上是打开应用程序的方法的枚举列表。因此,如果您想要使用一组定义明确的参数,那将是可行的。
参见 Desktop Entry specification有关参数代码和桌面操作如何工作的详细信息。
关于linux - .Desktop 将命令行参数传递给 exec(类似于 shell 脚本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31196869/