[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 正确地保持窗口打开并显示时间戳:
也可以看看: