Não é possível usar argumento no script de cálculo de data bash

Não é possível usar argumento no script de cálculo de data bash

O seguinte script bash não funcionará. 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

deveria dar

Wed Jun 21 00:00:00 BST 2006

em vez disso, dá um erro

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

Responder1

Você deve usar aspas duplas em vez de aspas simples:

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

Responder2

Você está usando aspas fortes (aspas simples) no script, pois as aspas fortes impedem a interpretação do conteúdo dentro das aspas simples, exceto a aspa.

Aspas simples desativam 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

informação relacionada