직렬 포트의 출력을 기록하는 로그 파일이 있습니다. 일치하는 행이 발견되면 검색을 종료하고 나머지 스크립트와 함께 계속합니다.로그 파일을 모니터링하는 동안 오류 처리
때때로 문제가되는 것은 아니지만 때로는 직렬을 통해 기록되는 컴퓨터가 중단되어 사용자 입력을 기다리는 경우가 있습니다 ("계속하려면 아무 키나 누르십시오").
현재의 스크립트는 특정 문자열 Login:
만을 찾고 있으므로 echo
반환을 묻지 않고 Login:
문자열을 계속 찾으십시오.
case
또는 if
문을 다음 스크립트에 추가하는 쉬운 방법이 있습니까? 다음 Press any key to continue
, echo \r
을하고 프롬프트 발생하지 않는 경우 Login:
프롬프트에 대한 검색을 계속 :
cat /dev/ttyS0 > serial.log &
catPID=$!
sh -c 'tail -n +0 -f serial.log | { sed "/Login:/ q" && kill $$ ;}' &
searchPID=$!
wait "$searchPID"
kill "$catPID"
echo "Admin" > /dev/ttyS0
나는 스크립트 문자열 여부를 확인 할 수있는 방법이 필요합니다.
내가 실제로 여기에서하려고하는 내용을 잘 모르겠지만 for ['expect'] (http://expect.sourceforge.net/)를 사용하고 싶을 수도 있습니다. –