
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.