我正在尝试使用嵌套字符串,但是在两个阶段都具有变量(外部和内部字符串)。我的理解是,变量只能在双引号内调用,所以我不能像通常嵌套字符串那样在双引号内使用单引号,所以我被卡住了。
具体来说,我想将单个数字选项传递到bash文件中,然后使用格式化的日期。所以我打电话:
./mycode.sh 4
然后,我需要一个4天内的格式化好的字符串变量,如下所示:
DATE="$(date +%Y-%m-%d --date'=-$1 days')"
(这非常适合用硬编码数字代替$1
)。这似乎在“逃脱”内部美元符号,并且出现错误invalid date '$1'
。
但是奇怪的是,当我测试一个更简单的示例时,内部引号似乎并不总是使美元破折号。例如,这可以按预期工作:
OFFSET="'-$1 days'"
echo $OFFSET
但是,当我在上述日期命令中尝试使用新的OFFSET字符串时出现错误。因此,我基本上只是对以下问题感到困惑:a)如何解决上面的问题,b)在什么情况下美元符号实际上会调用变量?