2017-07-07 39 views
0

希望大家都有一個美好的一天 我想寫一個腳本來通過腳本介紹一個cron作業 以下命令在shell腳本中執行時工作正常日期正在執行shell腳本中的回顯命令打印

echo '0 20 * * * touch /global/appaem/aem/wrap-lock/wrap.lock-`date +"%Y%m%d"`' >> /tmp/tmp.txt 
more /tmp/tmp.txt 
0 20 * * * touch /global/appaem/aem/wrap-lock/wrap.lock-`date +"%Y%m%d" 

但是,當正在從腳本執行相同的命令它顯示下面的O/p

/global/appaem/aem/wrap-lock/wrap.lock-20170707 

能有所幫助這裏

+0

用什麼?你已經觸摸了一個名爲global/appaem/aem/wrap-lock/wrap.lock-20170707的文件?與20170707從日期命令派生。 –

+0

考慮[這個答案](https://stackoverflow.com/a/878647) – shanmuga

+0

因此,你的命令在bash,sh和我直接插入終端時適用於我。你在運行什麼操作系統?可能試着像''''''一樣逃避你的'''(重音符號)。 –

回答

1

首先,您應該在bash中選擇$()來分叉一個子shell。

要打印出您想要的命令,而不通過bash被解釋,你需要逃跑$,即

#!/bin/bash 
echo "0 20 * * * touch /global/appaem/aem/wrap-lock/wrap.lock-\$(date +\"%Y%m%d\")" >> /tmp/tmp.txt 
+0

我感謝它的解決方案 – robotTech