可変的な行動

可変的な行動

始める前に、私はちょうどインスピレーションと私が持っている行動のためにコードを書くのではありません。このコードがあります。

NOW=$(date +"%H")
While [ true ]; do
 echo $NOW
done

私は日付コマンドを保存してNOW変数に書式設定したので、画面に印刷するときに時間が更新されることを望んでいましたが、スクリプトが開始されたのと同じ日付を印刷し続けるだけです。なぜこれが起こるのか教えてくれる人がいますか?

ベストアンサー1

そうする必要があるように動作します。あなたが望むことは以下によって達成することができます:

while [ true ]; do
    NOW=$(date +"%H")
    echo $NOW
done

この変数はループが繰り返されるたびに更新されます。

2つを以下と比較してみてください。

NOW=date

while [ true ]; do
    $NOW
done

コマンド自体が結果ではなく変数に格納されるため、ここで日付は繰り返されるたびに再計算されます。

おすすめ記事