我正在尝试在 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)
会工作。