Bash Shell判斷輸入的是否是數字,並判斷是否是偶數
阿新 • • 發佈:2019-02-09
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的方式執行,然後又不退出指令碼呢?