2017-01-13 55 views
0

date命令我有下面的代碼片段:錯誤在Bash中

#!/bin/bash 
time="date +\"%Y-%m-%d %T,%3N\"" 
eval echo "`\$time` check" 

其實這是一個更大的代碼的一部分。我想在每次腳本運行時按照上述命令計算時間值並打印輸出。

當我運行的代碼,這是下面的錯誤,我得到:

日期:額外的操作數 '%T,%3N「' 嘗試 '日期--help' 以獲取更多信息 檢查

然而,當我嘗試在命令行窗口中運行命令,它運行良好。問題是日期必須是在相同的格式僅在輸出中。

$ date +"%Y-%m-%d %T,%3N"

2017-01-13 11:54:36,604

請指導我什麼應該在這種情況下進行。

預先感謝任何幫助

+0

擺脫' ''''和額外的引號。 'time = $(date +「%Y-%m-%d%T,%3N」)' –

+0

不要使用'eval',而不知道它的後果。 – Inian

回答

1

從我的評論之後,你的問題是,當你把它寫你不能分配date命令的結果,您需要:

time=$(date +"%Y-%m-%d %T,%3N") 
1

不知道爲什麼你需要的eval和反引號的間接。我們可以簡單的寫:

time=$(date +"%Y-%m-%d %T,%3N") 
+1

謝謝codeforester。我嘗試了你的方式,並嘗試了與eval不同的方式。兩者都有效:echo「$(date +」%y-%m-%d%T,%3N「)check ----」and#!/ bin/bash dt =「date + \」%Y-% %\ d \「」 time =「date + \」%T,%3N \「」 eval echo「'\ $ dt''\ $ time' check」 –