기본

기본

조건은 다음과 같습니다.exitprocess() { case $1 in "0") echo "DB에 연결하거나 DML 문을 실행하는 중 오류가 발생했습니다." exit 0 ;; "1") echo "그룹 번호는 FULL이거나 1 사이여야 합니다. -64" 1번 출구 ;; }

TI_Validate() { if [[ ${grp_no} -le "0" || ${grp_no} -ge "65" || ${grp_no} != "full" ]] 프로세스 1 종료 }

기본

grp_no=$1

echo "그룹 번호는" ${grp_no} TI_Validate

위의 조건으로 인해 grp_no가 65보다 높거나 grp_no가 0보다 낮거나 grp_no가 "full"이 아닌 경우 프로세스 1이 종료됩니다.

하지만 현재 상황은 다음과 같습니다.

./TI_Script_Wrapper1.sh Full
출력: no in main group full 그룹 번호는 FULL이거나 1-64 사이여야 합니다.

올바른 값을 입력해도 종료됩니다. 단순화시켜 주실 수 있나요?

답변1

if 문 조건 끝에 공백이 없습니다...

... ${grp_no} != "full"]]

~해야 한다

... ${grp_no} != "full" ]]

와 사이의 공백에 유의하십시오 ]].

답변2

다음 사항이 귀하의 목적을 해결합니까?

$ grp_no=67

$ if [[ (${grp_no} -le 0 || ${grp_no} -ge 65) && ${grp_no} != "full" ]]; then echo ${grp_no}; fi

67

$ grp_no=-1

$ if [[ (${grp_no} -le 0 || ${grp_no} -ge 65) && ${grp_no} != "full" ]]; then echo ${grp_no}; fi

-1

$ grp_no="full"

$ if [[ (${grp_no} -le 0 || ${grp_no} -ge 65) && ${grp_no} != "full" ]]; then echo ${grp_no}; fi

$ grp_no=2

$ if [[ (${grp_no} -le 0 || ${grp_no} -ge 65) && ${grp_no} != "full" ]]; then echo ${grp_no}; fi
$

관련 정보