Shell编程之循环语句与函数

本章结构

  • 循环语句
    for循环语句
    while循环语句
    until循环语句
  • Shell函数
  • Shell数组
for语句的结构
  • 读取不同的变量值,用来逐个执行同一组命令
    格式1:
    for 变量 in 取值列表
    do
    命令序列
    done
    格式2:
    for 收件人 in 邮件地址列表
    do
    发送邮件
    done
    在这里插入图片描述
    for 变量名
    do
    done

for ((i=3;i<3;i++))
do
done

例如:

#!/bin/bash
for i in {1..5}
do
echo $1
done

seq 序列
#!/bin/bash
for i in 'seq 5'
do
echo hello
done

#!/bin/bash
a=10
for i in {1..$a}
do
echo hello
done      {} 中无变量

#!/bin/bash
for i in 'seq $a'
do 
echo hello
done

[root@localhost~]# bash 5.sh hello
hello    当后面跟未知变量时,hello便赋值给列表中   变量i

for  ((i=1;i<3;i++)) i=1 xxx
do
echo xxx
done

i=1 xxx
i=2 xxx       输入——判断——增加——判断
  • 例:
输出*****
示例1、
#!/bin/bash
read -p "请输出星星的规格:" p
for ((j=1;j<$p;j++))
do
    for((i=1;i<$p;i++))
    do
    echo -n "*"
    done
    echo
done
示例2:
#!/bin/bash
for j in {1..5}
do 
     for i in {1..5}
     do
     echo -n "*"
     done
     echo
done
示例2;创建一个用户
#/bin/bash
#这是一个创建指定用户的脚本
for name  in  `cat /opt/user.text`
do
 id $name &> /dev/null
 if [ $? -eq 0 ];then
  echo "用户已存在"
  else
  echo "正在创建用户$name用户"
  useradd $name
  echo "正在设定$name的密码"
  echo "123" | passwd --stdin $name &> /dev/null
 fi
done

while语句的结构
  • 重复测试某个条件,只要条件成立则反复执行
while  条件测试操作
do
   命令序列
done

while  为猜中正确价格
do
    反复猜测商品价格
done

在这里插入图片描述

#!/bin/bash
while ping -c 2 www.baidu.com &> /dev/null
do
echo hello
done

#!/bin/bash
while true
do
echo hello
done         死循环

#!/bin/bash
while : 
do
echo hello
done        死循环

#!/bin/bash
i=1
while [ $i -le 5 ]
do 
echo $i
let i++
done

示例1:猜大小
 !/bin/bashn=30
while true
do
read -p"请输入一个数字: " num
if [ $num -eq $n ];then
echo “你猜对了”
break\continue\exit      退出当前死循环
elif [ $num -gt $n ];then
echo "你猜大了"
elif [ $num -lt $n ];then
echo “你猜小了”
fi
done
示例2!/bin/bashi=1
while [ $i -le 10 ]
do
echo $i
f [ $i -ge 5 ];then
continue       是以当前变量值继续,不执行下面的操作
fi
let i++
done
示例3: 添加一个返回码,命令退出当前脚本
# !/bin/bashi=1
while [ $i -le 10 ]do
echo si
if [ $i -ge 5 ];then
exit 22          自定义返回码
fi
let i++
done
echo xxx
示例4:
#/bin/bash
#这是一个求0-100偶数和的脚本
a=0
b=1
while [ $b -le 100 ]
do
  if [[ $b%2 -eq 0 ]];then
 let a=$a+$b
  fi
let b++
done
echo $a

until语句结构(重复测试某个条件,只要条件不成立则反复执行)

在这里插入图片描述

#!/bin/bash
until false
do
echo 11
done

#!/bin/bash
i=1
sum=0
until [ $i -gt 100 ]
do
let sum=$i+$sum
let i++
done
echo $sum 
Shell 函数
  • 将命令序列按格式写在一起
  • 可方便重复使用命令序列
  • shell函数定义
[ function ] 函数名(){
    命令序列
    [return x]
}      
使用return或exit可以显式地结束函数
  • 调用函数的方法
    函数名 [参数1] [参数2]

例:

示例:
#!/bin/bash
function hello (){
echo hello
}

hello    此处的为调用
示例:
#!/bin/bash

hello(){
echo hello
}

world(){
echo world
}

nihao(){
echo 'hello' 'world'

nihao

SUM(){
let sum=$1+$2
echo $sum
}

SUM $1 $2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值