条件语句
if
# ifif conditionthen command fi# if elseif conditionthen commandelse commandfi# if elifif conditionthen commandelif conditionthen commandelse commandfi
需要注意的是
- elif下面还有个then
for
# 第一种表达方式for v in item1 item2 item3 itemNdo commanddone# 第二种表达方式for (( i=0;i<=10;i++ ))do commanddone
- 和前面if里面的then fi不相同的是,这里使用do done
- in 列表中可以是字符串,也可以是数字
while
while conditiondo commanddone
例如
#!/bin/shint=1while(( $int<=5 ))do echo $int let "int++"done
需要注意的是,这里面的let命令,它用于执行一个或者多个表达式,变量中不必使用 $
来表示变量,如果不想这么用,按照下面这么用也是可以的:
int=1while(( $int<=10 ))do int=$((int+1)) echo $int ((int++)) echo $int printf "\n"done
until
顾名思义,until循环是指执行一系列命令直到条件为真则停止
until conditiondo commanddone
需要注意的是,判断条件发生在末尾,也就是说至少会执行一次command
case
多选择语句,类似其它语言中的switch
case val in mode1) command ;; mode2) command ;; *) command ;;esac
需要注意的是
- 每个模式后面必需以
)
来结束 - 在每个选择语句后面都需要加上两个
;
- mode 为自己填写的模式
- 最后的选择语句和default类似,为
*)
- 结束标记
esac
为case的反转
例子:
read intcase $int in1) echo '选择1' ;;3|4|5) echo '选择3,4,5' ;;*) echo '选择了其它' ;;esac
break 和 continue
和其它语言中的作用是一样的
无限循环
# 第一种表达方式while :do commanddone# 第二种表达方式while truedo commanddone# 第三种表达方式for (( ; ; ))do commanddone
最后一种方法不知道为什么显示不了高亮,但是执行起来是正确的