gpt4 book ai didi

linux - Linux 桌面文件 Bash 命令中的日期命令

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:32:29 25 4
gpt4 key购买 nike

当它是桌面文件中 bash 命令的一部分时,这是一个关于 linux 上 date 命令的相当具体的问题。

环境 ubuntu 16.04

我有一个执行 bash 命令的桌面文件,该命令运行脚本并将其输出重定向到一个过时的日志文件。如果直接从终端运行,bash 命令本身工作正常:

bash -c "/path/to/script &> /var/log/$(date +%Y%m%d).out"

上面的命令创建了一个文件,例如 /var/log/20190413.out .但是,如果我将此命令用作桌面文件的一部分,则会运行脚本但不会创建输出文件。这是一个示例桌面文件:

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=bash -c "/path/to/script &> /var/log/$(date +%Y%m%d).out"

这似乎特定于 date命令。如果我在桌面文件中将其替换为 $(hostname) ,例如,它记录到 /var/log/<my hostname>.out .

有没有人遇到过这个?幕后发生了什么奇怪的事情吗? 注意:我并不是在寻找解决方法,而是想了解自己做错了什么。谢谢!

最佳答案

这是由于 date 命令参数中的百分号所致。它是桌面文件中的特殊字符,即使它在双引号参数中也是如此。要转义它,请改用“%%”。这有据可查 here .

关于linux - Linux 桌面文件 Bash 命令中的日期命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55666952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com