Shell
迴聲前的時間戳
有沒有更好的方法在 前面創建時間戳
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
您可以跳過
echo
, 並將消息放入date
命令中。date
允許您將文本插入格式字元串(+%R
在您的範例中)。例如:date +"%R usb device already mounted"
為方便起見,您也可以將其放入 shell 函式中。例如:
echo_time() { date +"%R $*" } echo_time "usb device already mounted"
如果您要多次重複使用它,這是一種清潔劑。
這是一種更健壯和可移植(POSIX)的方法,特別是允許
%
作為參數保持未處理的方法:echo_time() { date +"%H:%M $(printf "%s " "$@" | sed 's/%/%%/g')" }