В настоящее время я предоставляю боксерские ящики со сценариями оболочки, и я хотел бы дать людям понять, сколько времени у них осталось до завершения предоставления. Но при запуске скрипта оставшееся время не совпадает с тем, сколько времени прошло. Я обозначил различия в выходе кода ниже. В чем проблема? Благодаря!Bash Time Wrong
Мой сценарий работает следующим образом
- Получить текущее время от эпохи Unix и установить время, оставшееся
start=$(date +%s) ; remaining=1200
- печати время, оставшееся
echo start=$(date +%s)
- ECHO текущий шаг и запустить скрипты СТЭП
echo "Moving .ssh" ; ./move_ssh.sh
Рассчитать оставшееся время путем вычитания нового времени и добавления времени начала
a. Это то же самое, что получить разницу между временем начала и текущим временем с эпохи и вычесть его из предыдущего оставшегося времени. (А - (Ь - с) = A - B + C)
remaining=`expr $remaining - $(date +%s) + $start`
Предоставление сценария
start=$(date +%s) ; remaining=1200
echo "Time Remaing: $remaining ($(date "+%T"))"
echo "Moving .ssh" ; ./move_ssh.sh
...
remaining=`expr $remaining - $(date +%s) + $start` ; echo "Time Remaing: $remaining ($(date "+%T"))"
...
Вагрант выход
==> default: Time Remaing: 1200 (00:43:58)
==> default: Moving .ssh
==> default: Time Remaing: 1200 (00:43:58)
==> default: Installing git
==> default: Time Remaing: 1190 (00:44:08)
==> default: Installing mongodb
==> default: Time Remaing: 1140 (00:44:48) (1190 to 1140 is 50 but 44:08 to 44:48 is 40)
==> default: Installing redis-server
==> default: Time Remaing: 1082 (00:44:56) (1140 to 1082 is 68 but 44:48 to 44:56 is 8)
==> default: Installing python-pip
==> default: Time Remaing: 1001 (00:45:19) (1082 to 1001 is 81 but 44:56 to 45:19 is 23)
==> default: Installing python-dev
==> default: Time Remaing: 887 (00:45:52) (1001 to 887 is 114 but 45:19 to 45:52 is 33)
==> default: Installing mysql-server-5.5
==> default: Time Remaing: 713 (00:46:52) (887 to 713 is 174 but 45:52 to 46:52 is 60)
У меня есть только один простой вопрос - где '1200' пришли из ?? – pawel7318
1200 на 20 минут. Примерное время для завершения установки – merlinpatt