始める前に、私はちょうどインスピレーションと私が持っている行動のためにコードを書くのではありません。このコードがあります。
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
コマンド自体が結果ではなく変数に格納されるため、ここで日付は繰り返されるたびに再計算されます。