쉘 스크립트 while 문 예제

아래 예제에서 각 반복에서 루프는 변수 i의 현재 값을 인쇄하고 변수를 하나씩 증분합니다. 위의 while 루프는 무기한 실행됩니다. CTRL+C를 눌러 루프를 종료할 수 있습니다. 이 자습서에서는 Bash의 while 루프의 기본 사항과 나누기 및 루프의 흐름을 변경하는 계속 문을 설명합니다. #!/bin/csh 세트 yname=”foo” 동안 ($yname != “””” 에코 -n “이름을 입력 : “yname = $< 경우 ($yname!= "" ) 다음 예에서 에코 "안녕, $yname" 끝끝 우리는 항상 무한 루프를 만들기 위해 true를 반환기본 제공 명령을 사용하고 있습니다. true 기본 제공 명령 또는 항상 true를 반환하는 다른 문을 사용할 수도 있습니다. 그것은 따옴표에 의해 혼동되는 함수 내부 정확히 이유를 확실하지 않다, 하지만 단순히 큰 따옴표를 떠나 원하는 효과를 얻을 것이다 : wait_for() { res =0 동안 [[ [ ! $res -GT 0]는 res =$(꼬리 -5 $START_LOG | fgrep -c $1) 수면 5 수행 } 을 입력하면 메시지가 표시될 때 "안녕"을 입력할 때까지 에코 및 읽기 문이 무기한 실행됩니다. 변수 검토 – 1부에서는 이를 테스트하기 전에 INPUT_STRING=hello를 설정한 이유를 확인합니다. 이렇게 하면 기존 while 루프가 아닌 반복 루프가 됩니다.

동안 [조건] 할 명령1 command2 commandN 완료 스크립트 변수 n을 초기화 1, 다음 하나씩 증가. while 루프는 5가 될 때까지 “$n 번 환영”을 출력하고 루프를 종료합니다. continue 문은 루프의 현재 반복을 종료하고 루프의 다음 반복에 프로그램 제어를 전달합니다. 또 다른 유용한 트릭은 f 루프를 읽는 동안입니다. 이 예제에서는 나중에 다룰 사례 문을 사용합니다. 그것은 파일 myfile에서 읽고, 각 줄에 대해, 그것은 사용 중인 생각 언어를 알려줍니다. 각 줄은 LF(줄 바호)로 끝나야 합니다 – cat myfile이 빈 줄로 끝나지 않으면 최종 줄이 처리되지 않습니다. 마지막 버전에서는 $ 기호를 미리 입력하여 식 내부의 변수를 확장해야하며 (…) 버전에서는 $없이 변수 이름만 사용할 수 있습니다.

진지하게, 게시의 제목에서 볼 수 있듯이, 이것은 셸 스크립팅을 위한 것입니다. 그러나 물론 C ++ 기반 셸 스크립팅 언어를 찾을 수 있게 되자마자 우리는 이것을 😀 아래 예제는 웹캠으로 만든 사진을 웹 디렉토리에 복사하기 위해 작성되었습니다. 5분마다 사진을 찍습니다. 매시간 새 디렉토리가 만들어지고 해당 시간 동안 이미지를 유지합니다. 매일 24개의 하위 디렉터리를 포함하는 새 디렉터리가 만들어집니다. 스크립트는 백그라운드에서 실행됩니다. 그러나 읽는 동안 f는 * nix와 함께 작동하며 외부 프로그램 라인에 의존하지 않으므로 전자가 바람직합니다. 이 메서드가 백틱(`)을 사용하는 이유를 보려면 외부 프로그램을 참조하십시오.

위의 기본(“알 수 없는 언어”) 사례에서 $i($f”알 수 없는 언어”) 사례를 언급했더라면 $i 선언되거나 정의되지 않았음에도 불구하고 경고나 오류가 없었을 것입니다. 예를 들어 이 섹션에서는 루프동안 및 루프까지 를 찾습니다. * 운동에서, 우리는 다음과 같은 것을 입력하여 파일 (디렉토리)를 찾을 수있는 간단하고 빠른 방법으로 `찾기`를 사용했습니다 : 쿠알라 를 찾아 * 이 작품 . * 이 과제의 경우, 당신은 더 사용자 친화적 인 유틸리티를 작성합니다, 하나는 사용자에게 `이야기`, 그가 하고 싶은 것을 사용자에게 물어 등. *당신은 또한 모른다, 데이터베이스가 마지막으로 업데이트 되었을 때 (힌트, 힌트!) : 위치 쿠알라 SysAdmin_Lab12 * 모두 를 보여줍니다 `쿠알라`와 `SysAdmin_Lab12`의 발생. 그러나 반드시이 순서로. 그리고 배치 쿠알라 빈 * 확실히 너무 많은 표시, 시스템 디렉토리에 있는 모든 파일 (빈/ 및 /sbin) 표시 됩니다 그리고 `쿠알라`와 몇 가지 큰 금액에 보이지 않게 될. 나는 확신합니다, 당신은 아이디어를 얻을 .