【发布时间】:2013-08-06 06:44:39
【问题描述】:
我正在尝试在 bash 脚本中计算动态天数前的日期。
这就是我所做的-
#!/bin/bash
STAMP=`date --date='$1 day ago' +%y%m%d`
但在运行 myscript 2 时,它会显示 -
date: invalid date `$1 day ago'
如何在这个公式中使用我的参数值?
【问题讨论】:
我正在尝试在 bash 脚本中计算动态天数前的日期。
这就是我所做的-
#!/bin/bash
STAMP=`date --date='$1 day ago' +%y%m%d`
但在运行 myscript 2 时,它会显示 -
date: invalid date `$1 day ago'
如何在这个公式中使用我的参数值?
【问题讨论】:
如果在脚本中将 ' 替换为 " 到此命令中,它会起作用 -
STAMP=`date --date="$1 day ago" +%y%m%d`
线索是错误响应中使用的两个不同的字符 ` 和 ' -
date: invalid date `$1 day ago'
bash 脚本专家(不是我)可能会解释为什么会发生这种情况。
【讨论】:
这是因为变量替换不会发生在单引号中,即'$1' 不会扩展但"$1" 会。
这样说
STAMP=`date --date="$1 day ago" +%y%m%d`
或
STAMP=$(date --date="$1 day ago" +%y%m%d)
会起作用的。
【讨论】: