基本

基本

条件は次のとおりです。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
$

関連情報