[英]Date Command in Linux Desktop File Bash Command
當它是桌面文件中的 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 命令的參數中的百分號所致。 即使它在雙引號參數中,它也是桌面文件中的特殊字符。 要轉義它,請改用“%%”。 這 在此處有詳細記錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.