조건은 다음과 같습니다.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
$