Existe uma maneira melhor de criar registro de data e hora na frente de um echo
?
Atualmente eu faço desta maneira:
#!/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
A saída deve ser algo assim:
10:36 usb device already mounted
shell
timestamps
echo
TaXXoR
fonte
fonte
echo_time
fará o que você espera, até que sua mensagem tenha um%
sinal. Não é uma solução muito robusta.echo_time
poderia usar apenas a data do OP + construção ecoAqui está uma maneira mais robusta e portátil (POSIX) de fazer isso, particularmente uma que permite
%
permanecer não processada como argumento:fonte
Você pode criar uma variável para
date +%R
:fonte
Com
ksh93
e versões recentes debash
:Com
zsh
:Ou para evitar a rápida expansão da
"$@"
peça:Uma maneira hacky para versões mais antigas de
bash
:Na verdade, se o objetivo é fazer:
Você poderia fazer:
Ou para evitar bifurcar um sub shell:
Então:
(observe que esses são ecoados no stderr, o que pode ser realmente preferível).
fonte
Quando faço coisas assim, geralmente quero que todas as linhas (incluindo qualquer saída do programa) sejam marcadas com data e hora. Assim, eu usaria algo como isto:
Como Stephane aponta abaixo, programas individuais podem proteger sua saída quando enviados para um tubo. Obviamente, esses buffers serão liberados quando o programa terminar. Na pior das hipóteses, os carimbos de data e hora serão mostrados quando o programa for encerrado (se ele armazenar em buffer sua saída e não imprimir o suficiente para preencher o buffer). No entanto, todos os
echo
registros de data e hora serão precisos.Como uma amostra executável para teste:
Resultado:
fonte
ts
comando que faz parte do moreutils. É um script perl semelhante, mas com várias opções de formato de timestamp, etc.ts
? Parece que seria a melhor opção aqui.Criando registros de data e hora com
ts
instale a ferramenta
ts
(parte do pacotemoreutils)
:Adicionando um registro de data e hora a uma saída:
resultado:
fonte
fonte