Вывести результат команды time в переменную в сценарии bash

't' находится между двумя подрегексами: \ t , что не интерпретируется как табуляция, а как t . Таблица будет $ '\ t' .

Попробуйте вместо этого:

$ msg=$'[4]\tthe message'
$ [[ "$msg" =~ (.+)$'\t'(.+) ]]
$ echo ${BASH_REMATCH[1]}
[4]
$ echo ${BASH_REMATCH[2]}
the message
1
09.08.2017, 00:46
1 ответ

Я могу зафиксировать вывод timeотдельно с подоболочкой без использования переменной для абстрагирования команды. Простой пример для краткости:

$ time ( echo "Hello" > example.out 2> example.err ) > time.out 2> time.err
$ ls *{out,err}
example.err example.out time.err    time.out
$ cat time.err

real    0m0.000s
user    0m0.000s
sys     0m0.000s
$ cat example.out
hello
1
27.01.2020, 23:45

Теги

Похожие вопросы