Tôi muốn tạo một kịch bản lệnh shell để có hiệu quả lấy n dòng cuối cùng từ sterr và stin đã được xuất ra bàn điều khiển. Tôi có một phiên màn hình chạy một quá trình sẽ khởi động lại nó nếu nó bị treo qua một vòng lặp vô hạn hacky:lấy n dòng cuối cùng từ đầu ra giao diện điều khiển
#!/bin/bash
#This script will be started in a screen session
counter=0
while [ $counter -lt 10 ]; do
./run_some_process;
last_output=#GRAB PREVIOUS OUTPUT FROM CONSOLE HERE AND LOG TO FILE
echo -e "$last_output" >> mylog.txt;
sleep 5; #sleep for a few seconds before restarting
done
Những gì tôi cần là cho dòng 7 mã để lấy 10 hoặc lâu hơn dòng cuối từ stderr và stdin và gắn nó vào một file log
cảm ơn! thay đổi một lil ': ./run_some_process 2> & 1 | tail -10 >> logfle Hình như stderr cần thiết để đi đến stdout vì vậy nó sẽ làm cho nó vào đường ống. – Hersheezy
Ồ vâng xin lỗi, sai lầm của tôi ^^ " –