Tôi thường viết các kịch bản shell KSH theo cùng một mẫu:
- (1) truy xuất đầu ra từ một hoặc nhiều lệnh
- (2) định dạng nó bằng grep | cut | awk | sed và in nó ra màn hình hoặc vào một tập tin
Để làm điều đó, tôi thường lưu trữ đầu ra của (1) trong một tempfile, và sau đó thực hiện định dạng trong (2) trên tệp đó.
Lấy mã đó làm ví dụ:
TMPFILE=file.tmp
# If tmpfile exists rm it.
[ -f $TMPFILE ] && rm -f $TMPFILE
for SERVICE in $(myfunc); do
getInfo $SERVICE > $TMPFILE # Store raw output in the TMPFILE
# I retrieve the relevant data from the TMPFILE
SERV_NAME=$(head -1 $TMPFILE | sed -e 's/ $//')
SERV_HOSTNAME=$(grep HOSTNAME $TMPFILE | cut -d "=" -f2)
SERV_ARGS=$(grep Arguments $TMPFILE | cut -d ":" -f2)
print $SERV_NAME $SEP $SERV_HOSTNAME $SEP $SERV_ARGS
rm -f $TMPFILE #rm the TMPFILE in vue of next iteration
done
Có cách nào, sử dụng đường ống, chuyển hướng và whatnots, để tránh ghi tệp vào đĩa mỗi lần không?
Nếu được, tôi đang sử dụng Phiên bản ksh M-11/16 / 88i
PATH
hoặc các biến môi trường hoặc biến môi trường khác.TMPFILE
có thể tốt, nhưngTMPDIR
là đặc biệt, vì vậy bạn có thực sự muốn được đi bộ chặt chẽ đó?