这是关于Linux上的date命令的一个相当具体的问题,它是桌面文件中bash命令的一部分。
环境: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
。
以前有人遇到过吗?幕后有什么奇怪的事吗? 注意:我并不是想找到一种解决方法,而是想了解自己在做什么错。谢谢!