Wednesday, 3 July 2013

[bash] function đọc đầu vào qua pipeline

Dưới đây là ví dụ hàm log, dùng để log input của nó ra syslog:

log(){
    while read data; do
        echo $data | logger -t "familug" -p debug
    done
}
và dùng nó thế này
echo "Start $0" | log
date | log
Kết quả thì xem ở syslog, thường là /var/log/syslog

Script ghi log ra syslog:

#!/bin/sh

log(){
    while read data; do
        echo $data | logger -t "bbb" -p debug
    done
}

echo "Start $0" | log
date | log
echo "Arguments: $*" | log
echo "Running processes:" | log
ps awwx | log
echo "Environment:" | log
set | log