linux 循环判断、数组、循环
通过一个循环展示数组、循环、Case条件判断结构 #/bin/bash if [ $# == 0 ];then echo "please input the name" exit 1 fi parm1=$1 #存入数组 for((i=0;i<=${#parm1};i++)) do arr[$i]=${parm1:$i:1} done #循环显示数组元素 for((i=0;i<=${#arr[@]};i++)) do echo ${arr[$i]} done #循环显示数组元素的另一种写法 for n in ${arr[*]} do echo $n done #循环用while的方式 declare -i cnt=0 while [ $cnt -le ${#arr[@]} ];do echo ${arr[$cnt]} let cnt=cnt+1 #或cnt=$((cnt+1)) done #while结合case语句 declare -i cnt=0 while [ $cnt -le ${#arr[@]} ];do #echo ${arr[$cnt]} txt=${arr[$cnt]} case $txt in a) echo "aa";; g) echo "gg";; b | f) echo "b|f";; [ce]) echo "c and" echo "[ce]" ;; *) echo "not match";; esac
变量总结:
1、变量都可直接使用,无需定义,默认为字符型
2、数字类型要定义,方式为:declare -i varname
3、数字加运算用:let var=var+1 或 var=$((var+1)),其他运算格式一致,操作符不同而已
3、字符串长度:${#varname}
5、字符串内容截取:${varname:pos:len} {变量名:开始位置:长度},省略长度则从开始到最后
数组总结
1、数组赋值用arr[1]=值
2、读取组数值var=${arr[1]}
3、数组元素总数var=${#arr[@]}
4、数组所有元素var=${arr[*]},如用在echo可在一行显示所有元素内容;也可用在for n in 格式则
可循环读取元素,该种方式类似于c#的foreach枚举方式
Case总结
1、case格式为case $var in
match item1)
语句 ;;
match item2)
语句 ;;
*)
语句...
语句...
;;
esac
2、匹配多个项目: match item1 | match item2))
3、匹配多个项目的另一种写法:[abc]) 只要是a或b或c都满足,并不是满足abc
4、匹配项目之外:*)