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