test比较知识 -d:文件存在且为目录
-f:文件存在且为普通文件
-e:文件存在,不区分是目录还是普通文件
-r:文件存在且可读
-s :存在且大小不为0
-w :文件存在且可写
-x:文件存在且可执行
字符串的比较 -n "字符串" 字符串长度不为0 为真
-z "字符串" 字符串长度为0 为真
"串1" = "串2" 字符串1等于字符串2 为真
"串1" != "串2" 字符串1不等于字符串2 为真
二元比较操作符 -eq :等于
-ne :不等于
-gt :大于
-ge :大于等于
-lt :小于
-le :小于等于
案例 #!/bin/sh
echo -n "please input a num"
read var
if [ $var = 1 ];then
echo 1
exit 0
fi
if [ $var = 2 ];then
echo 2
exit 0
fi
[ "$var" != "1" -a "$var" != "2" ]&&{
echo error
exit 1
}
#!/bin/sh
path=/root/wg
[ ! -d "$path" ]&&{
mkdir -p $path
}
cat <<END
1.[install apache]
2.[install http]
3.[exit]
END
echo -n "please input your want"
read num
expr $num + 1 &>/dev/null
[ "$?" -ne "0" ]&&{
echo "must input [1|2|3]"
exit 1
}
[ "$num" = 1 ]&&{
echo start install apache
[ -x "$path/apache.sh" ]||{
echo $path/apache.sh not exist
exit 1
}
source $path/apache.sh
exit $?
}
[ "$num" = 2 ]&&{
echo start install http
[ -x "$path/http.sh" ]||{
echo $path/http.sh not exist
exit 1
}
source $path/http.sh
exit $?
}
[ "$num" = "3" ]&&{
echo bye
exit 0
}
[[ ! $num = ~ [1-3] ]]&&{
echo input error
exit 4
}