전원을 켜고 올바르게 시작될 때까지 기다리는 데 필요한 외부 장치가 있습니다. 이 작업을 수행하려는 방식은 직렬 포트를 통해 PuTTY에 대한 명령 줄 도구 인 Plink를 통해 연결하고 인쇄 한 모든 텍스트 줄을 읽고 시작되었음을 나타내는 텍스트 문자열을 찾으려고합니다. 정확히. 해당 텍스트 문자열을 찾으면 스크립트가 진행됩니다.실시간으로 stdout에서 내용을 읽으십시오.
문제는이 텍스트 줄을 실시간으로 읽어야한다는 것입니다. 지금까지 명령을 호출 한 다음 명령이 완료되면 출력을 처리하는 메서드 만 보았습니다. 또는 명령에 &을 추가하고 출력을 파일로 리디렉션하여 Plink가 백그라운드에서 실행되도록 할 수 있습니다. 그러나 문제는이 파일이 처음부터 비어 있으므로 스크립트가 바로 진행된다는 것입니다. 특정 파일의 새로운 줄을 기다린 다음에 그것을 읽는 방법이 있습니까? 아니면 다른 사람이 이것을 달성하는 방법을 알고 있습니까?
./plink "connection_name" > new_file &
sleep 10 # Because I know that it will take a little while before the correct text string pops up but I don't know the exact time it will take...
while read -r line
do
# If $line is the correct string, proceed
done < new_file
그러나, 내가 올바른 텍스트 문자열이 발견 될 때 스크립트가 직접 진행하려면 : 여기
는 지금까지 발견 한 가장 좋은 솔루션입니다.
즉, 명령이 실행되기 전에 명령 출력에 계속 액세스 할 수있는 방법이 있습니까?
'./plink "connection_name"을 (를) 사용해 보셨습니까? 읽는 동안 -r 행; somestuff을해라. 다 됐어? – user000001
sleep에서 새로운 스크립트를 작성하여'readln' 그리고'./plink "connection_name"> new_file |으로 끝내십시오. ./ readln' – mirkobrankovic
LOL 동시에 – mirkobrankovic