Я хотел бы использовать метки времени для регистрации выходных данных в файле сценария.
На консоли
дата +% Y% m% d_% H% M%S_% N
печатает что-то вроде "20120206_104531_944652200"
Чтобы сократить все те нано и микро секунды, которые я нашел
дата +% Y% m% d_% H% M% S_% N |sed s, ". \ {6 \} $" ,,
, что дает мне что-то вроде "20120206_104531_944"
В файле сценария это, кажется,несколько другой.Временная метка должна оцениваться каждый раз, когда выводится протоколирование.
Этот скрипт работает:
#!/usr/bin/bash
log_prefix1="date +%Y%m%d_%H%M%S_%N"
echo "`${log_prefix1}` blabla"
sleep 3
echo "`${log_prefix1}` blabla"
К сожалению, я не нашел способа запустить это столько 3 наиболее значимые цифры наносекунд.
Этот код сценария не работает:
#!/usr/bin/bash
log_prefix="date +%Y%m%d_%H%M%S_%N | sed s,\".\{6\}$\",,"
echo "`${log_prefix}` blabla"
sleep 3
echo "`${log_prefix}` blabla"
Я получаю следующее сообщение об ошибке:
date: extra operand `|'
Try `date --help' for more information.
Итак, что-точто-то не так с конвейером sed во время выполнения.
Есть идеи?