No se puede utilizar el argumento en el script de cálculo de fecha de bash

No se puede utilizar el argumento en el script de cálculo de fecha de bash

El siguiente script bash no funcionará. Necesito calcular la fecha dependiendo de la cantidad de días desde el 14 de octubre de 1582, donde el argumento será la cantidad de días.

d="$1"
date -d '14 Oct 1582 + "$d" days'

por ejemplo el comando

./datedays.sh 154748

debería dar

Wed Jun 21 00:00:00 BST 2006

en lugar de eso da un error

date: invalid date ‘14 Oct 1582 + "$d" days’

Respuesta1

Debes utilizar comillas dobles en lugar de comillas simples:

date -d "14 Oct 1582 + $d days"

Respuesta2

Está utilizando comillas fuertes (comillas simples) en el guión, ya que las comillas fuertes impiden la interpretación del contenido dentro de las comillas simples, excepto la cita.

Las comillas simples desactivan el significado especial de $ en un script.

#!/bin/bash
echo "$PATH"

¡Obras!

#!/bin/bash
echo '$PATH'

¡No funciona! La salida sigue siendo la misma que la entrada.

información relacionada