짧고 긴 옵션을 반복하는 다음 기능이 있습니다. 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
}