Você deve usar aspas duplas em vez de aspas simples:
date -d "14 Oct 1582 + $d days"
O seguinte script não funcionará. Eu preciso calcular a data dependendo do número de dias desde 14 de outubro de 1582, onde o argumento será o número de dias.
d="$1"
date -d '14 Oct 1582 + "$d" days'
por exemplo, o comando
./datedays.sh 154748
deve dar
Wed Jun 21 00:00:00 BST 2006
em vez disso, dá um erro
date: invalid date ‘14 Oct 1582 + "$d" days’
Você está usando uma citação strong (citação única) no script, pois a citação strong impede a interpretação do conteúdo dentro da citação única, exceto a citação.
A citação única desativa o significado especial de $ em um script.
#!/bin/bash
echo "$PATH"
Funciona!
#!/bin/bash
echo '$PATH'
Não funciona! A saída permanece igual à entrada
Tags date shell-script arguments quoting