以下 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'
不行!输出与输入保持相同