特点:根据条件的逻辑判断结果选择执行的语句内容
if的单分支结构
if 命令 ;then 命令 ;fi
结构分析:首先 判断if后命令的状态返回值,如果为真(状态返回值为0),则执行then后面的命令,fi(结束if的命令)
注意:一行中若有多个命令存在需要用分号分开
若不习惯使用分号可书写为
if 命令
then 命令
fi
if的双分支结构
if 命令 ;then 命令;else命令;fi
结构分析:首先判断if后命令的状态返回值,如果为真(状态返回值为0),则执行then后面的命令,否则执行else后面的命令;fi结束if语句
建议书写格式:
if 命令 ;then
命令
else
命令
fi
注意缩进:以便于在查看是能迅速理解表达内容
if的多分支结构
if 命令;then 命令;elif 命令;then命令;elif命令;thenml;.....else 命令;fi
结构分析:判断if后命令的状态返回值,若为真则执行then后面的命令,
若为假,则判断第一个elif后命令的状态返回值;若为真则执行该elif后的then命令
若为假,则判断下一个elif后命令的状态返回值,若为真则执行该elif后的then命令
.........
当if以及所有的elif后的所有的命令的状态返回值均为假时,执行else后的命令
fi
建议书写格式:
if 命令 ;then
命令
elif 命令 ;then
命令
elif 命令 ;then
命令
......
else
命令
fi
注意if语句可以嵌套;
如:if命令;then
if 命令;then
if命令;then
......
else
命令
fi
else
命令
fi
else
命令
fi
bash之for
循环执行结构:
格式:for 参数变量 in 变量取值表 ;do
循环体
done
for循环需要遍历的列表;可以通过以下方式生成列表
1.直接给出列表
[root@localhost ~]# for i in 1 2 3;do echo -e "$i"; done 1 2 3
2.纯整数列表
①:花括号展开
{FISTNUM..LASTNUM} :FISTNUME-LASTNUM之间的包括其在内的数值
[root@localhost ~]# for i in {1..9};do echo "$i"; done 1 2 3 4 5 6 7 8 9
{FIST,SECOND,THID,...,LAST}:参数列表
[root@localhost ~]# for i in {1,3,5,7,9};do echo "$i"; done 1 3 5 7 9
②:seq命令
seq [OPTION]...LASR 列表为1到LASR的所有整数
[root@localhost ~]# for i in $(seq 5);do echo -e "$i"; done 1 2 3 4 5
seq [option]...FIRST LAST 列表为 FIRST到LAST 之间所有的整数
[root@localhost ~]# for i in $(seq 5 9);do echo -e "$i"; done 5 6 7 8 9
seq [OPTION]...FIRST n LAST 列表为 FIRST 到LAST 以n为公差的所有整数
[root@localhost ~]# for i in $(seq 5 2 9);do echo -e "$i"; done 5 7 9
注意:seq是命令在引用时应该添加 $()
③:花括号展开
{FIST..LAST} :从FIST 到 LAST之间由规律的字符列表
[root@localhost ~]# for i in {a..f};do echo -e "$i"; done a b c d e f
④:命令的执行结果:
ls /etc
grep /path/to/somefile
⑤:通配符
[root@localhost ~]# for i in /mnt/*;do echo -e "$i"; done /mnt/a.txt /mnt/b.txt /mnt/c.txt
⑥:某些特殊变量的值
$*,$@
原文地址:http://blog.51cto.com/wangchaode/2045797