programing

Bash에서 어떻게 고리를 벗어날 수 있을까?

testmans 2023. 4. 15. 08:29
반응형

Bash에서 어떻게 고리를 벗어날 수 있을까?

텍스트를 처리하기 위해 Bash 스크립트를 작성하려고 합니다.이 스크립트는 약간의 루프가 필요할 수 있습니다.

예를 들어 C의 while loop은 다음과 같습니다.

int done = 0;
while(1) {
  ...
  if(done) break;
}

나는 그것에 상당하는 Bash 스크립트를 쓰고 싶다.하지만 제가 주로 사용하는 것은 제가 읽은 모든 고전적인 예에서 보듯이, 다음과 같습니다.

while read something;
do
...
done

어떻게 해야 하는지에 대한 도움은 없다.while(1){}그리고.break;C에서 잘 정의되어 널리 사용되고 있으며 stdin의 데이터를 읽을 필요가 없습니다.

위의 C 코드와 동등한 Bash를 사용할 수 있는 사람이 있습니까?

에서도 크게 다르지 않다bash.

workdone=0
while : ; do
  ...
  if [ "$workdone" -ne 0 ]; then
      break
  fi
done

:no-op 명령어입니다.종료 상태는 항상0 이므로 루프는 다음 시간까지 실행됩니다.workdone0이 아닌 값이 지정됩니다.


값을 설정하고 테스트할 수 있는 방법은 여러 가지가 있습니다.workdone루프를 종료하려면 , 상기의 것은 POSIX 호환 쉘로 동작합니다.

while true ; do
    ...
    if [ something ]; then
        break
    fi
done

언급URL : https://stackoverflow.com/questions/18488651/how-to-break-out-of-a-loop-in-bash

반응형