主要的

主要的

以下是条件: exitprocess() { case $1 in "0") echo "连接 DB 或执行 DML 语句时出错" exit 0 ;; "1") echo "组号应为 FULL 或介于 1-64 之间" exit 1 ;; }

TI_Validate() { if [[ ${grp_no} -le "0" || ${grp_no} -ge "65" || ${grp_no} != "full" ]] 然后退出进程 1 fi }

主要的

grp_no=$1

echo "组号是" ${grp_no} TI_Validate

如果 grp_no 高于 65 或 grp_no 低于 0 或 grp_no 未“满”,则上述条件应导致退出进程 1

但下面是正在发生的事情:

./TI_Script_Wrapper1.sh 完整
输出:在主组中 no 已满 组号应为 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
$

相关内容