1 test 命令
1.1 数值测试
- -eq >>> 等于则为真
- -ne >>> 不等于则为真
- -gt >>> 大于则为真
- -ge >>> 大于等于则为真
- -lt >>> 小于则为真
- -le >>> 小于等于则为真
#!/bin/bash
read -p "please input your num1:" num1
read -p "please input your num2:" num2
test $num1 -eq $num2 && echo "=" || echo "!="
1.2 文件测试
- -e 文件名 >>> 如果文件存在则为真
- -r 文件名 >>> 如果文件存在且可读则为真
- -w 文件名 >>> 如果文件存在且可写则为真
- -x 文件名 >>> 如果文件存在且可执行则为真
- -s 文件名 >>> 如果文件存在且至少有一个字符则为真
- -d 文件名 >>> 如果文件存在且为目录则为真
- -f 文件名 >>> 如果文件存在且为普通文件则为真
- -c 文件名 >>> 如果文件存在且为字符型特殊文件则为真
- -b 文件名 >>> 如果文件存在且为块特殊文件则为真
#!/bin/bash
read -p "please input name of file:" filename
test -e $filename && echo "file exist" || "file not eaist"
1.3 字符串测试
- = >>> 等于则为真
- != >>> 不相等则为真
- -z 字符串 >>> 字符串的长度为零则为真
- -n 字符串 >>> 字符串的长度不为零则为真
#!/bin/bash
read -p "input first string:" first
read -p "input second string:" second
test $first == $second && echo "==" || eho "!="
2 条件判断
#!/bin/bash
read -p "please input Y/N" value
if [ "$value" == "Y" ] || [ "$value" == "y" ]; then
echo "your input is Y"
exit 0
fi
if [ "$value" == "N" ] || [ "$value" == "n" ]; then
echo "your input is N"
exit 0
fi
#!/bin/bash
read -p "please input Y/N" value
if [ "$value" == "Y" ] || [ "$value" == "y" ]; then
echo "your input is Y"
exit 0
fi
elif [ "$value" == "N" ] || [ "$value" == "n" ]; then
echo "your input is N"
exit 0
else
echo "your input is illegal"
fi
#!/bin/bash
case $1 in
"a")
echo "param is a"
;;
"b")
echo "param is b"
;;
*)
echo "illegal!"
;;
esac
3 函数
#!/bin/bash
function help(){
echo "this is help cmd"
}
function close(){
echo "this is close cmd"
}
case $1 in
"-h")
help
;;
"-c")
close
;;
*)
echo "error!"
;;
esac
#!/bin/bash
print(){
echo "param 1:$1"
echo "param 2:$2"
}
print a b
3 shell循环语句
while 【条件】
do
//循环体
done
until【条件】
do
//循环体
done
for var in cond1 cond2 cond3
do
//循环体
done
for ((初始值;限制值;步长))
do
//循环体
done
#!/bin/bash
read -p "input count:" count
for((i=0;i<=count;i=i+1))
do
total=$(($count+$i))
done
ech0 "1+2+...+$count=$total"