2017-07-07 41 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