쉘 스크립트 while 예제

while 구문은 while 루프를 제어하는 명령이 성공적으로 실행되는 한 명령 목록을 반복적으로 실행할 수 있습니다(종료 상태 0). 구문은 다음과 같습니다: 다음 예제에서는 현재 반복된 항목이 2와 같으면 루프 실행이 중단됩니다. 아래 예제는 웹캠으로 만든 사진을 웹 디렉토리에 복사하기 위해 작성되었습니다. 5분마다 사진을 찍습니다. 매시간 새 디렉토리가 만들어지고 해당 시간 동안 이미지를 유지합니다. 매일 24개의 하위 디렉터리를 포함하는 새 디렉터리가 만들어집니다. 스크립트는 백그라운드에서 실행됩니다. 이 스크립트는 처리되기 전에 테스트되는 사용자 입력의 평균을 계산합니다. q를 누르면 루프가 종료됩니다. getopts ae:f:hd:s:qx: 옵션 에서 경우 “${옵션}”을 a) ALARM=”TRUE”;; e) 관리자=${OPTARG}; d) 도메인=${OPTARG};; f) 서버파일=$OPTARG; s) WHOIS_SERVER=$OPTARG;; q) 조용한 =”TRUE”;; x) warndays=$OPTARG;; ?) 사용 종료 1;; 에사크 완료 ……. .. . .

. 이 처럼 “완료”후 while 루프를 공급하는 것도 가능합니다 … 여기서 셸 명령이 평가됩니다. 결과 값이 true이면 지정된 문이 실행됩니다. 명령이 false이면 문이 실행되지 않으며 프로그램은 done 문 후 다음 줄로 이동합니다. 당신이 의심하는 경우 그 동안과 매우 유사할 때까지 당신은 옳다. 이 예제에서는 break 문이 사용자가 -1을 입력할 때 while 루프를 건너뛰고, 그렇지 않으면 두 개의 숫자를 계속 추가합니다: while 문은 명령 목록을 반복적으로 실행하는 데 사용됩니다. 변수 확장이 작동하는 방식으로 인해 (()) 또는 $(()의 내부에 $variables 사용하지 않습니다. 내부에 $variables 사용하면 작업의 순서를 변경할 수 있습니다 (예는 독자를위한 연습으로 남아), 반면 $ 오프를 떠나는 것은 일을 더 예측 할 수 있습니다 (IMHO).

$(()))이 내부의 산술 연산 값으로 확장된다는 것을 염두에 두지 마십시오. 부울 연산은 0 또는 1로 확장됩니다. 그래서, 그리고 여기에 하나의 라이너 동안 배쉬로 코드 위에 있습니다 : x = 1; 동안 [$x -le 5]; 에코 “$x 시간을 환영합니다”할 $((x++)); 여기서 수행되는 샘플 셸 코드는 while 루프를 사용하여 계수를 계산하는 것입니다: while 루프를 사용하면 일부 조건이 발생할 때까지 명령 집합을 반복적으로 실행할 수 있습니다. 일반적으로 변수의 값을 반복적으로 조작해야 할 때 사용됩니다. 이전 예제는 데모를 위해서입니다. 시스템의 크론 시설을 사용하여 정기적인 검사를 쉽게 수행할 수 있습니다. crontab에서 실행되는 스크립트를 사용할 때 출력 및 오류를 리디렉션하는 것을 잊지 마십시오! #!/bin/bash 동안 : 읽기 -p “두 개의 numnbers를 입력 (- 1 종료) : “b 경우 [$a -eq -1] 다음 fi ans =$((+ b)를 깰 $ans x = 1;동안 [$x -le 10]; y = x * * 2하자; 하자 z= x*3; 하자 a=x*4; 에코 $x $z $a $y; 수면 1; let x=x+1;done while 루프는 주어진 명령 집합을 수행 하기 위해 주어진된 조건이 true로 평가 하는 한 알 수 없는 횟수를 수행 하는 데 사용 됩니다. x=1 동안 [$x -le 3] 에코 “인수는 :$1″ 시프트 x=`expr $x + 1` 완료이 작은 스크립트는 시뮬레이션 테스트에 사용할 수 있습니다; 파일을 생성합니다: until 루프는 컨트롤 식이 false로 평가되는 동안 코드가 실행된다는 점을 제외하면 while 루프는 while 루프와 거의 같습니다.

Comments are closed.