스크립트에서 백틱 사용 [닫기]

스크립트에서 백틱 사용 [닫기]

echo $Date와 사이에 왜 이런 차이가 있습니까 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 ""

출력에서:

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

나는 사용한다:

echo $BASH
/bin/bash

답변1

차이점은 당신이 실행한다는 것입니다

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

스크립트 시작 부분에. 해당 날짜/시간을...이라는 쉘 변수에 저장한 Date다음 실행하십시오 .

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

루프에서... 마지막 명령은 각 반복마다 새로운 시간 값을 쿼리하고 인쇄하며 echo $Date항상 동일한 값을 인쇄합니다!

답변2

스크립트에서 Date=에 백틱을 사용하고 있습니다.date +%s_%kh%M_le_%a_%d_%b_%Y

그리고 echo 문에는 큰따옴표를 사용하세요. 스크립트에서는 동일한 결과가 생성됩니다.

백틱은 표현식을 평가하는 데에만 사용되며, 큰따옴표는 표현식을 평가하고 메시지를 표시하는 데 사용됩니다.

스크립트에 큰따옴표를 사용하든 백틱을 사용하든 상관없습니다.

관련 정보