無法在 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'

不行!輸出與輸入保持相同

相關內容