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

1

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’
    
por Jacques MALAPRADE 14.11.2014 / 17:50

2 respostas

1

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

date -d "14 Oct 1582 + $d days"
    
por 14.11.2014 / 17:53
1

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

    
por 14.11.2014 / 18:31