키보드 입력을 읽을 때 출력

키보드 입력을 읽을 때 출력

ssh나는 상자에 들어가 성공 또는 실패를 모니터링해야 하는 프로세스를 시작하고(사람이) 다음 상자로 이동하여 반복하는 스크립트를 작성하려고 합니다 .

프로세스에서 작성한 로그에서 tail을 사용하려고 시도했지만 스크립트가 실행되는 동안 키보드 입력을 읽도록 tail -f하는 방법을 찾지 못했습니다 .tail -f

tail -f이상적으로는 프로세스가 성공할 때까지 기록하고, 하나의 키를 누르고 스크립트가 계속되도록 하거나, 시작 오류가 있는 경우 다른 키를 누르고 스크립트를 종료하고 싶습니다 .

가능합니까?

지금까지 나는 단지 다음을 생각해 냈습니다.

    #!/bin/bash
    kb=""
    until [ "$kb" == "n" ]; do
    tail /var/log/java-app.log
    read -t 1 kb
    done

대부분 작동하지만 투박합니다. Java 애플리케이션을 시작하는 중 일시 중지가 발생하여 가끔 동일한 10줄이 반복되어 enter확인을 클릭해야 합니다 n. 나는 tail -f키보드에서 다른 변수(바람직하게는 2개)를 사용하고 계속 읽고 싶습니다 . 가능합니까?

{편집}
실제로 그렇게 생각했어요

tail -f /var/log/java-app.log | tee > ( grep -q "YADA YADA" )

나의 최선의 선택입니다. Ctrl+C실수를 발견하면 할 수 있습니다.

답변1

#! /bin/bash

echo "Starting tail in the background..." 
tail -f input &
pid=$!
trap "kill $pid" EXIT
while true; do
        read kb
        test n = "$kb" && break
done

관련 정보