
В одном из моих bash-скриптов, где я использую файл для записи текущего системного времени, я заметил, что правильное время записывается в файл только каждый второй запуск скрипта.
Я создал второй скрипт, чтобы проверить его, и он показал то же самое поведение.
Сценарий:
#!/bin/bash
NOW=$(date +"%F_%H:%M:%S")
wtimestamp="/home/pazau/logfiles/overviewer-timestamp"
timestamp=$(<$wtimestamp)
echo $NOW > $wtimestamp
echo $timestamp
Система — Ubuntu 14.04 x64 и Raspberry Pi model B с raspbian. Поведение одинаковое на обеих системах.
Я что-то упустил?
решение1
Сохраненное время уже верное, вам просто нужно изменить порядок инструкций, чтобы получить то, что вы ожидаете:
#!/bin/bash
NOW=$(date +"%F_%H:%M:%S")
wtimestamp="/home/pazau/logfiles/overviewer-timestamp"
echo $NOW > $wtimestamp
timestamp=$(<$wtimestamp)
echo $timestamp