簡體   English   中英

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

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM