过程式编程语言代码执行顺序
顺序执行 逐条逐条执行
选择执行 代码有一个分支,条件满足是才会执行;两个或以上的分支只会执行其中一个分支
循环执行 代码片段(循环体)执行0,1或多个来回
循环执行
应用场景 :当需要重复执行某段代码或者其他参数时
循环首先需要要有进入条件并且要有退出条件。
循环语句包括
for
while
unite
1.for循环
for 变量 in 列表;do
循环体
done
for列表元素非空,便进入循环,
列表元素遍历完成,便结束循环
例如:
declare -i sum=0 for i in `seq 1 10`;do let sum=$[$sum+$i] done echo $sum
扩展命令使用:seq;diclare
seq 使用方法 seq [起始数] [步进数] 末尾数 diclare declare命令用于声明和显示已存在的shell变量。当不提供变量名参数时显示所有shell变量。 declare命令若不带任何参数选项,则会显示所有shell变量及其值。 declare的功能与typeset命令的功能是相同的。 语法 declare(选项)(参数) 选项 +/-:"-"可用来指定变量的属性, "+"则是取消变量所设的属性; -f:仅显示函数; -r:将变量设置为只读; -x:指定的变量会成为环境变量,可供shell以外的程序来使用; -i:[设置值]可以是数值,字符串或运算式。
实例:交付式创建删除用户
#!/bin/bash #snowbamboo #20160817 #交付式批量创建删除有一定规律的用户 #delete user$I failed,the reason is that there is no 删除某用户失败,原因是不存在该用户。 #user$I(`id -u user$I`) been created and set up a password 成功创建用户和密码。 read -p "please input add or del:" edit if [[ $edit == "add" ]]; then for I in `seq 1 10`; do if id user$I &> /dev/null ; then echo "user$I has created" else useradd user$I echo user$I|passwd --stdin user$I &>/dev/null echo "user$I(`id -u user$I`) been created and set up a password" fi done elif [[ $edit == "del" ]]; then for I in `seq 1 10`; do if id user$I &> /dev/null; then userdel -r user$I echo "user$I delete ok" else echo -e "\e[31merror! delete user$I failed,the reason is that there is no\e[0m" fi done else echo -e "\e[31merror! Please enter a correct value, for example,add or del!\e[0m" fi
while 循环
while 循环
循环格式
while 条件 ;do
循环体
循环控制变量的修正表达式
done
当条件为真时进入循环
当条件为假时退出循环
while好处在于在不用生成许多列表,占用内存资源小
例如:
#!/bin/bash declare -i num=0 declare -i i=1 while [ $i -le 100 ];do #循环条件设置成$i小于等于100,因为在之前设置过 $i=1所以条件为真进入循环,当到101大于100条件为假时退出循环。 num=$[$i+$num] let i++ done echo $num #因为进入了循环,变量num为0依次加上$i 1到100的数,结果输出为num的值。
uniq循环
循环格式
uniq 条件 ;do
循环体
循环控制变量的修正表达式
done
当条件为假时进入循环
当条件为真时退出循环
#!/bin/bash declare -i num=0 declare -i i=1 until [ $i -gt 100 ];do let sum+=$i let i++ done echo $num #循环条件是小于100时执行i++,当加到101的时候条件为假,终止循环条件
转载于:https://blog.51cto.com/liaoxz/1840435