流程控制
可以同“;”来在同一行顺序执行命令。若写到同一个[] 中,可以使用-a来代替&&,相同的还有-o。
if判断
1.单分支:
if [ 条件判断式 ];then
程序
fi
if [ 条件判断式 ]
then
程序
fi
2.多分支
if [ 条件判断式 ]
then
程序
elif [ 条件判断式 ]
then
程序
else
程序
fi
注意事项:
1.[ 条件判断式 ],中括号和条件判断式之间必须有空格
2.if后要有空格
case语句
case $变量名 in
"值1")
如果变量的值等于值1,则执行程序1
;;
"值2")
如果变量的值等于值2,则执行程序2
;;
...省略其他分支...
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
注意事项:
1.case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。
2.双分号“;;”表示命令序列结束,相当于java中的break。
3.最后的“*)”表示默认模式,相当于java中的default。
for循环
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
for 变量 in 值1 值2 值3...
do
程序
done
{}符号是一种内部运算符,用法如:{1..100},表示从1到100。
while循环
while [ 条件判断式 ]
do
程序
done
sum2=$[ $sum2 + $a ]
a=$[ $a + 1 ]
可以使用let来实现,如下:
let sum2+=a
let a++
读取控制台的输入
read 【选项】【参数】
选项:
-p:指定读取值时的提示符;
-t:指定读取值时的等待时间(秒)如果-t不加表示一直等待
参数:
变量:指定读取值的变量名