Существует лучший способ создать метку времени перед echo
?
В настоящее время я делаю это так:
#!/bin/sh
if mount | grep -q /mnt/usb; then
echo `date +%R\ ` "usb device already mounted"
else
echo `date +%R\ ` "mounting usb device..."
mount -t msdosfs /dev/da0s1 /mnt/usb
if mount | grep -q /mnt/usb; then
echo `date +%R\ ` "usb device successfully mounted"
fi
fi
Вывод должен выглядеть примерно так:
10:36 usb device already mounted
shell
timestamps
echo
TaXXoR
источник
источник
echo_time
будет делать то, что вы ожидаете, пока ваше сообщение не будет%
подписано. Не очень надежное решение.echo_time
можно просто использовать конструкцию даты + эхо OPВот более надежный и переносимый (POSIX) способ сделать это, особенно тот, который позволяет
%
оставаться необработанным в качестве аргумента:источник
Вы можете создать переменную для
date +%R
:источник
С
ksh93
и последние версииbash
:С
zsh
:Или чтобы избежать быстрого расширения в
"$@"
части:Хакерский способ для старых версий
bash
:На самом деле, если дело в том, чтобы:
Вы могли бы сделать:
Или чтобы избежать разветвления вложенной оболочки:
Потом:
(обратите внимание, что они отображаются на stderr, что на самом деле может быть предпочтительнее).
источник
Когда я делаю подобные вещи, я обычно хочу, чтобы все строки (включая любой вывод программы) были помечены временем. Таким образом, я бы использовал что-то вроде этого:
Как указывает Стефан ниже, отдельные программы могут буферизовать свой вывод при отправке в канал. Конечно, эти буферы будут сброшены при выходе из программы, поэтому в худшем случае отметки времени будут отображаться при выходе из программы (если она буферизует свой вывод и не печатает достаточно для заполнения буфера). Однако
echo
метки времени будут точными.В качестве пригодного для тестирования образца:
Выход:
источник
ts
команду, которая является частью moreutils. Это аналогичный Perl-скрипт, но с различными вариантами формата отметки времени и т. Д.ts
? Похоже, это будет лучший вариант здесь.Создание отметок времени с
ts
установить инструмент
ts
(часть пакетаmoreutils)
:Добавление метки времени к выводу:
выход:
источник
источник