2013-09-24 125 views
2
DATE="1 week ago" 
date --date='$DATE' 

不起作用。我怎样才能使它工作?命令中的bash变量扩展

我可以这样做:

DATE_CMD="date --date='$DATE'" 
eval $DATE_CMD 

,但我不希望存储完整的命令中的变量。

回答

2

你报价扩张的牺牲品。

正确的调用将可能是:

DATE='1 week ago' 
date --date="$DATE" 

(注意双引号)

+1

哇!这是我收到的最快捷的解决方案!因为我必须等待11分钟(显然),所以甚至不能接受你的答案。 – Ash

2

你只需要使用双引号,以使字符串插值:

date --date="$date" 
+1

另一个快速响应。是的,这也适用。以为我会引导读者这个主题,它很好地解释它:http://stackoverflow.com/questions/6697753/difference-between-single-and-double-quotes-in-bash – Ash