[완료]init 스크립트 해석에 어려움이 있습니다.

hkm73560의 이미지

안녕하세요.
리눅스 부팅 프로세스를 공부하던중 initramfs 이미지의 init 스크립트를 보게 되었습니다.
그런데 평소 쉘스크립트를 다루지 않아서 해석에 많은 어려움이 있습니다.
다음과 같은 짧은 반복문인데 해석이 조금 힘드네요.

while :; do
 [ -d "$NEWROOT/proc" ] && break;
 for f in /mount/*.sh; do
  [ -f "$f" ] $$ . "$f"
  [ -d "$NEWROOT/proc" ] && break;
 done
 
 i=$(($i+1))
 [ $i -gt 20 ] \
  && { flock -s 9 ; emergency_shell "Can't mount root filesystem"; } 9>/.console_lock

특히 해석을 막는 부분은 while, for에서의 [] 부분입니다. while 혹은 for문의 조건 부분에 해당하지 않는 것 같은데 왜 []를 쓰고 있는지 또 의미하는바가 무엇인지 잘 모르겠습니다.
익명 사용자의 이미지

hkm73560의 이미지

쉘의 명령어 중 테스트라는 게 있는줄 몰랐습니다.
그렇다면 위 [ -d "$NEWROOT/proc" ] && break; 라인은
$NEWROOT/proc 라는 디렉토리가 있으면 break를 하고 없으면 break하지 않고 다음 라인을 진행한다는 뜻이 되겠군요.
고맙습니다.