2016-09-27 3 views
2

일부 처리/로깅 작업을 수행하는 bash 스크립트가 있으며이를 파일에 씁니다. 사용자가 종료 할 때까지 계속 실행됩니다. 내가하고 싶은 일은 자동 종료 - 사용자가 지정한 특정 크기 나 줄 수만큼 파일을 채울 때까지이 스크립트를 계속 실행하는 것입니다. 이것이 가능한가?특정 수의 출력 이후에 스크립트를 종료하는 방법

이 스크립트가 연속적이면 조건을 사용할 수 없기 때문에 어떻게 수행 할 수 있는지 생각할 수 없습니다. 스레드를 사용하는 것만 생각할 수는 있지만 초보자이며 너무 복잡하지 않기를 바랍니다.

+2

사용 – 123

+1

귀하의 질문은 간결하다 머리 명령 대신 터미널로 이동하려는 경우

당신은 > output_file 부분을 제거 할 수 있습니다. 'this' 스크립트가 연속적이면. 해당 파일에 쓰는 스크립트를 넣을 수 있습니까? 질문은 [mcve]이어야합니다. – sjsam

답변

2

(123)는 말했다 @, 당신이 때 다음, 처음 20 줄을 표시 할

continuous_command | head -n 20 > output_file 

같은 라인의 지정된 번호로 출력을 제한하는 head를 사용할 수있는 것처럼 continuous_command은 21 번째를 인쇄하려했으나 파이프의 다른 쪽 끝이 빠져 나갔기 때문에 실패했습니다. 따라서 continuous_commandSIGPIPE 신호를 얻습니다. 이는 보통 프로그램을 종료시킵니다. 당신은 출력 파일

+0

질문에 대한 결과로 리디렉션하는 데 op가 필요하다고 생각합니다. – sjsam

+1

@sjsam ok, 업데이트 됨 –

1

는 시도 this-

lines=$(cat file | wc -l) 
if [ "$lines" -gt "some_value" ] ; then kill -9 "job_id" ; fi 
+0

OP에 조건부 없음이 표시됩니다.이 스크립트가 continuous 일 경우 _i는 조건부를 사용할 수 없습니다. – Inian

+0

외부 조건부로 지정하는 것은 어떻습니까? 'file'이 특정 크기보다 커지면'kill -9'를 작업에 사용합니까? – VM17

+1

downvoted되는 것을 피하기 위해, 답변을 게시하기 전에 저자와 명확히하십시오. – Inian

관련 문제