コードを書きましたが、タイムスタンプは更新されません。スクリプトの実行中の時間を示し、ループが実行され、時間が変わっても同じ時間を表示します。
T=$(date)
while [ -f $BACKUP_FILE ]
do
echo "[$T] Backup is in Progress" | tee -a $LOG_FILE
sleep 10
done
何が間違っている可能性がありますか?
答え1
..ループに入れる必要がありますT=$(date)
。それ以外の場合は更新されません(つまり、現在の状態では、日付はコードの上部で一度だけ決定されます)。do
while
答え2
ループ本体の外側の変数に日付を一度割り当て、ループ内の変数を逆参照します。変数の値は更新されないため、ループ中に元の行1に割り当てられた値のみが含まれます。
目的の効果を得るには、変数を完全に削除してdate
ループ本体内で呼び出すだけです。
while [ -f "$BACKUP_FILE" ]
do
echo "[$(date)] Backup is in Progress" | tee -a "$LOG_FILE"
sleep 10
done