텍스트를 처리하기 위해 Bash 스크립트를 작성하려고하는데 while 루프가 필요할 수 있습니다.
예를 들어 C의 while 루프는 다음과 같습니다.
int done = 0;
while(1) {
...
if(done) break;
}
그와 동등한 Bash 스크립트를 작성하고 싶습니다. 그러나 내가 일반적으로 사용했고 내가 읽은 모든 고전적인 예에서 보듯이 이것은 다음과 같습니다.
while read something;
do
...
done
그것은 수행하는 방법에 대한 어떤 도움을 제공하지 않습니다 while(1){}
와 break;
잘 정의 널리 C에 사용, 그리고 표준 입력에 대한 데이터를 읽을 필요가 없습니다된다.
누구든지 위의 C 코드와 동등한 Bash를 도와 줄 수 있습니까?
답변
와 다르지 않습니다 bash
.
done=0
while : ; do
...
if [ "$done" -ne 0 ]; then
break
fi
done
:
no-op 명령입니다. 종료 상태는 항상 0이므로 0 done
이 아닌 값이 주어질 때까지 루프가 실행됩니다 .
done
루프를 종료하기 위해 값을 설정하고 테스트 할 수있는 여러 가지 방법이 있습니다 . 위에서 보여준 것은 POSIX 호환 쉘에서 작동해야합니다.
답변
while true ; do
...
if [ something ]; then
break
fi
done