値が最初に発生すると仮定する変数の置き換え

値が最初に発生すると仮定する変数の置き換え

私のスクリプトは変数置換を使用していますが、変数は別の時間に呼び出されても最初に生成された値を使用します。たとえば、

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

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

私はいつも同じ結果を得ます。それでは、今回はどのようにして2番目の交換を作成できますか?

ありがとうございます!

ベストアンサー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

おすすめ記事