shell学习笔记(四)shell控制流结构
shell学习笔记(四)shell控制流结构目录:=======================================================
条件语句
if语法结构
循环语句
for语法结构
1.for … in 语句
2.for((赋值;条件;运算语句))
while语法结构
until语法结构
break和continue控制
选择语句
case语法结构
========================================================
条件语句if语法结构 if 条件1 如果条件1为真then 那么action command1 执行命令1elif 条件 如果条件1不成立then 那么action command 2 执行命令2else 如果条件1与条件2都不成立action command 3 执行命令3fi 完成--------------------------------------------------------------eg: # cat if.sh #!/bin/sh scores=85;if [ $scores -gt 90 ]; then #[ ]中的值必须是[空格expression空格] echo "very good!";elif [ $scores -gt 80 ]; then echo "good!";elif [ $scores -gt 60 ]; then echo "pass!";else echo "no pass!";fi; # chmod 755 if.sh # ./if.shgood!-------------------------------------------------------------- # cat if1.sh #!/bin/bashecho -n "Enter you name:"read NAMEif [ -z $NAME ] || [ "$NAME" = "" ];thenecho "You don't enter a name"elif [ "$NAME" = root ];thenecho "hello root"elseecho "hello $NAME"fi # ./if1.sh 输入为root则打印echo hello rootEnter you name:roothello root # ./if1.sh输入为任意字符未匹配1 2 条件则echo hello $NAMEEnter you name:vionghello viong # ./if1.sh 输入为空字符或者空格则打印echo You don't enter a nameEnter you name:You don't enter a name 简单结构: if 条件1 如果条件1为真then 那么action command 1 执行命令1fi 完成eg: # if [ 10 -lt 21 ];then echo "YES";fi;YES 条件测试有:[[]],[],test 这几种,注意:if与[ ]用空格分开,[ ]与变量之间用空格分开 [ ]内是整数时不能使用条件运算符shell命令,可以按照分号分割,也可以按照换行符分割。如果想一行写入多个命令,可以通过“';”分割 循环语句 for语法结构 1.for … in 语句for 变量 in 列表doaction command1action command2done 当变量值在列表里,for循环即执行一次所有命令,使用变量名访问列表中取值只要用空格字符分割,每次for…in 读取时候,就会按顺序将读到值,给前面的变量命令可为任何有效的shell命令和语句变量名为任何单词in列表用法是可选,如果不用它,for循环使用命令行的位置参数in列表可以包含替换,字符串和文件名 # cat for.sh#!/bin/bash#forfor abc in {1..5}doecho $abcdone# ./for.sh 12345这脚本实现相当于seq命令# seq 512345------------------------------------------------------# cat for.sh#!/bin/bash#forfor abc in “lin hong viong” 注意:如果把双引号去掉就变成三个字符换行打印出来doecho $abcdone# ./for.shlin hong viong 2.for((赋值;条件;运算语句)) for((赋值;条件;运算语句))doaction commanddone;eg: # cat for2.sh #!/bin/bashfor ((i=1;i
页:
[1]