Linux 桌面文件外壳扩展
我试图弄清楚是否有可能在Linux 桌面文件外壳扩展,linux,shell,gnome,Linux,Shell,Gnome,我试图弄清楚是否有可能在~/.local/share/applications中创建一个something.desktop文件,每次都能成功执行命令chromium--user data dir=$(mktemp-d) .desktop文件中的相关行是以下示例中的Exec条目: $ cat ~/.local/share/applications/something.desktop [Desktop Entry] Name=chromecognito Exec=chromium --user-da
~/.local/share/applications
中创建一个something.desktop
文件,每次都能成功执行命令chromium--user data dir=$(mktemp-d)
.desktop文件中的相关行是以下示例中的Exec
条目:
$ cat ~/.local/share/applications/something.desktop
[Desktop Entry]
Name=chromecognito
Exec=chromium --user-data-dir\=\$\(mktemp -d\)
Icon=chromecognito
Type=Application
Categories=GTK;GNOME;Utility;
我看到过,它引用并尝试了多种转义组合,如$
,(
,)
,=
,
等,以及使用单引号,但无法使其在每次从“开始菜单”启动程序时使用新的临时目录
作为旁注,使用行Exec=/home/myuser/bin/chromecognito
其中/home/myuser/bin/chromecognito
如下所示:
$ cat /home/myuser/bin/chromecognito
#! /usr/bin/env bash
(chromium --user-data-dir=$(mktemp -d) &)
虽然我甚至还没有成功地使用像~/bin/chromecognito
这样的波浪线作为.desktop文件中的Exec条目,但它仍然可以工作。也许这是一个很好的起点
Exec=sh -c "chromium --user-data-dir=$(mktemp -d)"
请注意,$(cmd)和~都将由shell解释,因此必须先调用shell才能使这些符号正常工作。就是这样!有趣的是,我不需要逃避
$
或其他任何东西,基于上面的链接问题和xdg规范,这是我没有预料到的。