1. 程式人生 > >Bash Shell判斷輸入的是否是數字,並判斷是否是偶數

Bash Shell判斷輸入的是否是數字,並判斷是否是偶數

check_even_num.sh

#! /bin/bash
if [ $# != 1 ] ; then
   echo wrong arg,please input one arg
   exit 1;
fi

 sh check_num.sh -i $1


#執行check_num指令碼,如果返回0,則說明是數字
if [ $?  == 0 ] ; then
  #是數字,判斷是否是偶數
    if [ $(($1%2)) == 0 ] ; then
     echo "this is an even num"
    else
     echo "this is not an even num"
    fi
else
  #不是一個數字
    echo "Error NaN"
fi

   輸入引數,然後判斷是否是數字,如果是數字,則判斷是否是偶數,如果不是數字,則提示使用者

check_num.sh,檢查輸入是否是數字的指令碼

#! /bin/bash
floatExp="^(-?\d+)(\.\d+)?$"
intExp="^-?\d+$"
exp=""
exp=${intExp}
if [ $# != 2 ] ; then
 echo wrong arg nums,please input one arg
 exit 1
fi

case $1 in
"-f")
   exp=${floatExp}
        ;;
"-i")
  exp=${intExp}
        ;;
*)
   echo option shuld be -i or -f
   exit 1
        ;;
esac


if [ `echo $2|grep -P "${exp}"|wc -l` == 1  ] ; then
   echo num $2
   exit 0;
  else
    echo not num
    exit 1;
fi


在這裡遇到個問題,在執行第一個指令碼呼叫第二個指令碼的時候,如何使用source的方式執行,然後又不退出指令碼呢?