LINUX.ORG.RU

Bash script ERROR

 


0

1

Доброго дня всем.

date1=$(date +"%s")
read date2 < "/home/my/bash/time_stamp"
diff=$(($date1-$date2))

Ситуация предполагает, что в файле «/home/my/bash/time_stamp» может быть пусто, в итоге получаю ошибку при обчислении.

Есть ли какой способ обработать ошибку в обчислениии, например при ошибке вставить $(date +«%s») > «/home/my/bash/time_stamp».

Заранее благодарен.

★★

например при ошибке вставить $(date +«%s») > «/home/my/bash/time_stamp».

А почему бы сразу не обрабатывать ошибку вставки? Вроде не ноль вернётся.

ziemin ★★
()
Ответ на: комментарий от anonymous

Такую форму используют в т.ч. из-за возможных проблем, если в переменной будет оператор test'a. Не уверен, что применимо для всех вариантов, но так точно всегда будет работать.

Подробнее, начиная с «Historical systems have also ...»: http://pubs.opengroup.org/onlinepubs/009695399/utilities/test.html

qux
()

Возможно, будет удобнее, не в файле хранить дату, а сам файл, вернее его mtime, использовать как timestamp.

# get timestamp
date2=`stat --format="%Y" /home/my/bash/time_stamp`

# update timestamp
touch /home/my/bash/time_stamp
sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.