带有日期变量的 .desktop 文件不起作用

带有日期变量的 .desktop 文件不起作用
[Desktop Entry]
Version=1.0
Type=Application
Name=test
Exec=bash -c 'DATE=$(date +%Y%m%d) ; echo $DATE'
Terminal=true
Icon=utilities-terminal

当我双击它时,什么也没有发生,并且我不想在它上面包装另一个脚本,我该怎么做才能修复这个单行脚本?

答案1

正如steeldriver 和muru 正确指出的那样,freedesktop 标准规定文件类型参数使用%符号,但可以通过双% 符号进行转义。

您的程序中还有一个问题,即默认程序gnome-terminal将启动,但一旦子程序退出,它就会立即退出。就您而言,bash -c一旦 echo 完成,它就会退出。为了保持终端打开,您需要添加另一个 shell 调用。此外,您不需要 echo 变量,您可以直接使用date。因此,您编辑的文件将如下所示:

[Desktop Entry]
Version=1.0
Type=Application
Name=test
Exec=bash -c 'echo "TEST";date +%%Y%%m%%d;bash'
Terminal=true
Icon=utilities-terminal

正如您在屏幕截图中看到的,第二次调用 shell 正确地保持窗口打开并显示时间戳:

在此处输入图片描述

也可以看看:

相关内容