값이 처음 발생한다고 가정하는 변수 대체

값이 처음 발생한다고 가정하는 변수 대체

내 스크립트에서 변수 대체를 사용하고 있지만 변수는 다른 시간에 호출되더라도 생성된 첫 번째 값을 사용합니다. 예를 들어:

#!/bin/sh
vardate=$(date)

echo hour is "$vardate"
sleep 5
echo hour is "$vardate"

나는 항상 같은 결과를 얻습니다. 그렇다면 이번에는 어떻게 두 번째 교체가 생성될 수 있습니까?

감사합니다!

답변1

@jasonwryan의 솔루션을 사용합니다.

echo hour is $(date)

아니면 함수로 바꿀 수도 있습니다:

function dt {
vardate=$(date)
echo "hour is $vardate"
}

dt
sleep 5
dt

한 줄 테스트:

function dt { var=$(date);echo $var;};dt;sleep 5;dt

관련 정보