특정 상황에서의 종료 기능

특정 상황에서의 종료 기능

짧고 긴 옵션을 반복하는 다음 기능이 있습니다. for짧은 옵션과 일치하는 항목이 있으면 첫 번째 for 루프를 종료합니다 . 하지만 함수를 종료하고 긴 옵션에 대한 테스트를 건너뛰고 싶습니다. 이 문제를 어떻게 처리해야 합니까?

  xerxex ()
  {

   for short_opt in "${glob_pary[@]}"
   do
     pthis
     pthat 
     [[ something ]] &&  break
   done
   
   exit_function 

   for long_opt in "${glob_qary[@]}"  # [L]
   do
     qthis
     qthat
     [[ something ]] &&  break
   done

  }

답변1

return함수를 그대로 두고 break루프를 중단하세요.

편집: 하지 마세요 exit! 스크립트를 대화형으로 실행하면 프로세스가 종료됩니다.

답변2

코드의 논리는 약간 불분명하지만 한 가지 옵션은 이 코드 블록을 입력하기 전에 0이 아닌 인수 수를 테스트하는 것입니다.

xerxex ()
{
  if [ ${#glob_pary[@]} -gt 0 ]; then
    for short_opt in "${glob_pary[@]}"
    do
      pthis
      pthat 
      [[ something ]]
    done
  elif [ ${#glob_qary[@]} -gt 0 ]; then
    for long_opt in "${glob_qary[@]}"  # [L]
    do
      qthis
      qthat
      [[ something ]]
    done
  fi
}

관련 정보