无法在 bash 日期计算脚本中使用参数

无法在 bash 日期计算脚本中使用参数

以下 bash 脚本将不起作用。我需要根据自 1582 年 10 月 14 日以来的天数来计算日期,其中参数是天数。

d="$1"
date -d '14 Oct 1582 + "$d" days'

例如命令

./datedays.sh 154748

应该给

Wed Jun 21 00:00:00 BST 2006

相反它给出了一个错误

date: invalid date ‘14 Oct 1582 + "$d" days’

答案1

您必须使用双引号而不是单引号:

date -d "14 Oct 1582 + $d days"

答案2

您在脚本中使用强引用(单引号),因为强引用会阻止解释单引号内除引号之外的内容。

单引号关闭脚本中 $ 的特殊含义。

#!/bin/bash
echo "$PATH"

作品!

#!/bin/bash
echo '$PATH'

不行!输出与输入保持相同

相关内容