目录
if判断
case语句
for循环
while循环
if判断
语法:
if [ 条件判断表达式 ]
then
程序
elif [ 条件判断表达式 ]
then
程序
else
程序
fi
注意:
- [ 条件判断表达式 ],中括号和条件判断表达式之间必须有空格。
- if,elif,else 后要有空格
- if,fi 不可省略,elif,else 可省略
示例如下:
#!/bin/bashif [ $1 == '']thenecho "参数不能为空"elif [ $1 == 1 ]thenecho "输入的数字是1"elseecho "输入的参数是 $1"fi
case语句
语法:
case $变量名 in
"值1")
程序1
;;
"值2")
程序2
;;
。。。其他分支。。。。。。
*)
默认执行程序
;;
esac
示例:
#!/bin/bashcase $1 in
1)echo "输入的值是1"
;;2)echo "输入的值是2"
;;
*)echo "输入的值是其他值"
;;
esac
注意:
- 每一匹配模式必须以右括号结束;
- 取值可以为变量或常数;
- 匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;(类似break);
- 取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令;
- case、in 和 esac 都是 Shell 关键字, esac就是case的反写在这里代表结束case;
- 匹配模式: 可以是一个数字、一个字符串,或者是一个简单正则表达式;
for循环
语法1:
for(( 初始值;循环控制条件;变量变化 ))
do
程序
done
示例l:求1-100累加和
#!/bin/bashfor((i=1;i<=100;i++))dos=$[$s+$i]doneecho $s
语法2:
for 变量 in 值1 值2 值3 .。。。。。
do
程序
done
示例:输出全部参数
#!/bin/bashfor i in $*doecho "输入变量是$i"done
while循环
语法:
while [ 条件表达式 ]
do
程序
done
示例:求1-100累加和
#!/bin/bashs=0
i=1while [ $i -le 100 ]
dos=$[$s + $i]i=$[$i + 1]
done
echo $s