Я использую утилиты даты, чтобы попытаться рассчитать прошедшее время. Например, $var = 19-11-27 22:36:47, созданный
date "+%y-%m-%d %T"
Это было сделано некоторое время назад.
Мне нужно превратить его в другую переменную. Так что я думаю, что это сработает.

foo=$(dateutils.ddiff | echo "$var" | date "+%y-%m-%d %T" | -f '%dD %HH %mM')

Запустив это, я получаю

./script.sh: line 7: -f: command not found
ddiff: Error: reference DATE must be specified    

Итак, как мне правильно передать это или это их альтернатива?

-1
Hugo Slop 28 Ноя 2019 в 09:39
Вы используете программу под названием -f, но у вас нет программы с таким названием. Что должна делать команда -f '%dD %HH %mM'? Кроме того, date не читает из стандартного ввода, поэтому нет смысла передавать что-то в date.
 – 
user1934428
28 Ноя 2019 в 11:42

1 ответ

$Value1=19-11-27 22:36:47
$Value2=date "+%y-%m-%d %T" 
var=$(date -u -d @$(($(date -d "$Value2" '+%s') - $(date -d "$Value1" '+%s'))) '+%H:%M')

Я бросил утилиты даты для этого.

-1
Hugo Slop 28 Ноя 2019 в 09:51
2
Опубликованные вами строки не имеют смысла в bash. Вы когда-нибудь копировали и вставляли их в командную строку bash, чтобы посмотреть, что они делают?
 – 
user1934428
28 Ноя 2019 в 11:40