У меня есть сценарий:Одновременные команды
#!/bin/bash
date +%T &
Hours=`date +"%H"` &
Minutes=`date +"%M"` &
Seconds=`date +"%S"`
echo "$Hours:$Minutes:$Seconds"
Цель состоит в том, чтобы echo date
два раза, а затем вынимать часы, минуты, секунды и вычислить, сколько секунд прошло между этими двумя командами. Поэтому мое решение состоит в том, чтобы записывать часы, минуты, секунды в переменные, а затем работать с этими переменными.
Проблема: echo
только эхо-секунды, что означает, что моя интерпретация &
неверна.
Как исправить проблему
&
? Мне нужно, чтобы эти команды запускались одновременно, поэтому я могу проверить.date +%s
, по-видимому, не будет работать на некоторых входах как:
Wed Mar 4 10:34:59 2015 Wed Mar 4 10:35:08 2015
Даст результат 00:00:01
вместо 00:00:09
или:
Wed Mar 4 10:34:59 2015 Wed Mar 4 17:43:08 2015
даст результат 12:13:14
вместо 07:08:09
. Это правда? Или я могу использовать date +%s
, а затем уменьшить эти два выхода?
Это похоже на классическую проблему [XY] (https: //meta.stackexchange.ком/вопросы/66377/что-это-The-ху-проблема). Вы действительно хотите узнать, как рассчитать продолжительность чего-то (фактическая проблема, «X»), но вы спрашиваете, как запускать несколько команд даты одновременно (ваше решение «Y»). –
Задания в фоновом процессе ограничены этим процессом. Они не отображаются в вызывающем скрипте. Кроме того, нет необходимости запускать «дату» в фоновом режиме; это не займет много времени. – chepner