过程式编程语言代码执行顺序

顺序执行 逐条逐条执行

选择执行 代码有一个分支,条件满足是才会执行;两个或以上的分支只会执行其中一个分支

循环执行 代码片段(循环体)执行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的时候条件为假,终止循环条件