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'

動作しません。出力は入力と同じままです

関連情報