use backquotes em um script [closed]

0

Por que essa diferença entre echo $Date e echo "$(date +%s_%kh%M_le_%a_%d_%b_%Y)" ?

beginning=$(date +%s)
diff="0"
rest="$1"
tmp="0"
now="0"
Date='date +%s_%kh%M_le_%a_%d_%b_%Y'

echo -n "$1"
while [ "$diff" -lt "$1" ]
do
    let "now=$(date +%s)"
    let "diff=now-beginning-1"
    let "tmp=$1-diff"
    if [ "$tmp" -lt "$rest" ]
    then
        echo
        echo $Date
        echo "$(date +%s_%kh%M_le_%a_%d_%b_%Y)"
        let "rest=$1-diff"
        echo -n ", $rest"
    fi
done

echo ""

na saída:

concatenatorus@gwenn-ha-du ~ $ countdown.sh 5
5
1425230747_18h25_le_dim._01_mars_2015
1425230749_18h25_le_dim._01_mars_2015
, 4
1425230747_18h25_le_dim._01_mars_2015
1425230750_18h25_le_dim._01_mars_2015
, 3
1425230747_18h25_le_dim._01_mars_2015
1425230751_18h25_le_dim._01_mars_2015
, 2
1425230747_18h25_le_dim._01_mars_2015
1425230752_18h25_le_dim._01_mars_2015
, 1
1425230747_18h25_le_dim._01_mars_2015
1425230753_18h25_le_dim._01_mars_2015
, 0

Eu uso:

echo $BASH
/bin/bash
    
por concatenatorus 01.03.2015 / 18:31

2 respostas

2

A diferença é porque você corre

Date='date +%s_%kh%M_le_%a_%d_%b_%Y'

no início do script. Que armazena essa data / hora em uma variável do shell chamada Date ... e então você executa

echo "$(date +%s_%kh%M_le_%a_%d_%b_%Y)"

em um loop ... o último comando consulta e imprime um novo valor de tempo em cada iteração, o echo $Date imprime sempre o mesmo valor!

    
por 01.03.2015 / 19:52
0

No seu script, você usou aspas anteriores em Data = date +%s_%kh%M_le_%a_%d_%b_%Y

E no enunciado echo são usadas aspas duplas. Em seu script, ele produz o mesmo resultado.

As citações anteriores são usadas para avaliar apenas as expressões e as aspas duplas são usadas para avaliar as expressões e exibir as mensagens.

No caso do seu script, não importa se você usa aspas duplas ou citações anteriores.

    
por 01.03.2015 / 19:58

Tags