我正在尝试使用bash脚本计算动态天数的日期。
这就是我所做的 -
#!/bin/bash
STAMP=`date --date='$1 day ago' +%y%m%d`
但在运行myscript 2
时,它会说 -
date: invalid date `$1 day ago'
如何在此公式中使用我的参数值?
答案 0 :(得分:16)
如果在脚本中将此命令“替换为”,则可以正常工作 -
STAMP=`date --date="$1 day ago" +%y%m%d`
线索是错误响应中使用的两个不同的字符`和' -
date: invalid date `$1 day ago'
bash脚本编写专家(不是我)可以解释为什么会发生这种情况。
答案 1 :(得分:7)
这是因为变量替换不会在单引号中发生,即'$1'
不会扩展但"$1"
会扩展。
因此,说
STAMP=`date --date="$1 day ago" +%y%m%d`
或
STAMP=$(date --date="$1 day ago" +%y%m%d)
会起作用。