脚本基础2
在脚本内 #!/bin/bash read -p "请输入一个数字" num if [ $num -eq 60 ];then echo "猜对了" else echo "猜错了" fi
这是一个完整的但分值if条件语句,两个动作必定执行一个。if如果,then那么,else否则,fi结尾。
在脚本内
#!/bin/bash
read -p "请输入一个数字" num 这是让用户给num赋值
if [ $num -eq 60 ];then
echo "猜对了"
elif [ $num -lt 60 ];then
echo "猜小了"
else
echo "猜错了"
fi
这是一个多分支if条件语句,三个动作必定也只能执行一个,写多分支语句时要注意,写第一个条件的范围不能涵盖第二个条件,优先级是从上到下执行的,符合一个就不会再往下看其他条件了。
在脚本内 #!/bin/bash for i in 1 2 3 4 5 do echo $i done
for是循环,让i从1 2 3 4 5里依次循环取值,有几个值就取几次。do是开始做什么,done是结束,他们之间叫作一个循环体。
在脚本内 #!/bin/bash for ((i=0;i<10;i++))
do
echo $i
done
写两个小括号是让shell支持C语言,首先i赋值0进入循环体,输出0到屏幕,然后执行i++这个动作(在自身+1),判断i此时符不符合小于10的条件,如果不符合就会进行下一轮循环,直到符合条件退出循环体。
在脚本内 #!/bin/bash for ((i=0;;i++)) do echo $i done
两个分号之间什么都不加就是无限循环,因为中间判断是空的。
在脚本内 #!/bin/bash for i in {1..10} do echo $i
let i++ 或
((i++))
done
let i++ 是让shell认识他,两个小括号是让shell支持C语言。
在脚本内
#!/bin/bash
read i while [ $i -lt 10 ] do echo $i let i++ sleep 1 done
这是while循环,后面跟的是终止循环的条件,如果用户输入0,那么会输入0~9,sleep 1 是让等待1秒后进入下次循环
如果是while : 那么就是无限循环终止条件为空。
在脚本内 #!/bin/bash read i case $i in start) echo "服务启动" ;; stop) echo "服务停止" ;; *) echo "重新输入" ;; esac
case是类似if的一种语句,他们最大的区别就是case是平级的,没有优先级,通常case用来做功能菜单和服务启动脚本。
在脚本内 #!/bin/bash function (也可以不写) aihao(){ echo "吃饭" echo "睡觉" echo "打豆豆" } aihao
这个是函数体的格式,在脚本内如果不调用函数体,是不会有任何作用的,调用时写几次函数体的名字就调用几次。
在脚本内还有四种循环的控制语句
exit:终止整个脚本
break:退出单个距离最近的循环体
continue:退出一次循环,不退出循环体
return:退出整个函数体