linux - .Desktop 将命令行参数传递给 exec(类似于 shell 脚本)

标签 linux bash shell ubuntu shortcut-file

我通常会这样写一个 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/

相关文章:

linux - python bottle 服务器在 Linux 上不工作

linux - 在for循环中将一个文件中的两列分隔为两个单独的文件

c - 在 Shell 脚本或 Perl 脚本中对单词进行排序,然后对包含数字和字符的句子进行排序

BASH:重用来自同一命令的参数

linux - 比较 txt 文件中的两个目录和输出与 linux 中不同的文件名

python - 使用 grep 比较两个 Python 包列表

c - 访问 zip 文件

linux - 使用多个引号时出错

linux - 一次移动一批文件

python - 在子进程中调用包装器脚本