2016-07-15 2 views
1

스크립트를 사용하여 한 번에 여러 명령을 반복적으로 실행하려고합니다. 나는이스크립트를 사용하여 간격을두고 여러 명령 반복 실행

----------------test_script--------------- 
while true;do 
ls -l >>output.txt 
sleep 3 
done 


while true;do 
cat file.txt 
sleep 5 
done 

내가 동시에 루프 내가 위의 스크립트를 실행 .When 동안 모두 만 첫 번째 루프가 실행하고 파일로 리디렉션 -l LS의 출력 상태를 실행하려는 시도 괜찮나 전 스크립트에서 동시에 while 루프를 실행할 수 있습니다.

+1

어쨌든 무한 루프가 실행 중입니다. 그렇다면'ls'와'cat'을 같은 while에 넣지 않으십시오. – Fazlin

+1

백그라운드에서 명령을 실행하려면'&'를 사용하십시오. – choroba

+0

@ choroba :하지만 이것보다 조금 복잡합니다. 아마도 나는 이전의 [\ [solution \]] (http://stackoverflow.com/a/19543286/1620779) 중 하나를보고있었습니다. – sjsam

답변

1

한 가지 방법은 백그라운드에서 루프를 실행하고 아래에서 루프를 실행하는 것입니다.

#!/bin/bash 

while true;do 
    ls -l >>output.txt 
    sleep 3 
done &    # Runs the first while loop in the background and passes to the next while loop 

while true;do 
    cat file.txt 
    sleep 5 
done 
+0

'done' 후에'output.txt'로 한 번만 리디렉션하는 것이 더 효율적입니다. 그런 다음 원하는 경우 덮어 쓰기 rediect를 사용하여 파일의 이전 내용을 지울 수 있습니다. – tripleee

관련 문제