条件は次のとおりです。exitprocess(){case $ 1 in "0")echo 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 が「フル」でない場合、プロセス 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
$