嵌套引号中的Bash脚本变量

时间:2019-03-03 16:13:28

标签: linux bash shell

我正在尝试使用嵌套字符串,但是在两个阶段都具有变量(外部和内部字符串)。我的理解是,变量只能在双引号内调用,所以我不能像通常嵌套字符串那样在双引号内使用单引号,所以我被卡住了。

具体来说,我想将单个数字选项传递到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)在什么情况下美元符号实际上会调用变量?

0 个答案:

没有答案