Linux|Shell编程之循环语句与函数
【Linux|Shell编程之循环语句与函数】
目录
- 前言
- 1.for语句的结构
-
- 1.1for语句的结构
- 1.2for语句应用示例
- 2.while语句的结构
-
- 2.1while语句的结构
- 2.2while语句应用示例
- 3.until语句的结构
- 4.shell函数
-
- 4.1shell函数
- 4.2Shell函数
- 5.Shell数组
- 6.Shell脚本调试
- 总结
前言
- for循环语句怎么用?while循环语句?until循环语句?
for变量名in取值列表
do
命令序列
done
文章图片
文章图片
文章图片
文章图片
1.2for语句应用示例 示例1
批量添加用户
用户名存放在users.txt文件中,每行一个初始密码均设为123456
验证脚本
示例2
根据IP地址检查主机状态
IP地址存放在ipadds.txt文件中,每行一个使用ping命令检测各主机的连通性
文章图片
文章图片
文章图片
文章图片
2.while语句的结构 2.1while语句的结构 重复测试某个条件,只要条件成立则反复执行
while条件测试操作
do
命令序列
done
#!/ bin/bash
i=1
while [ $i -le 5 ]
do
echo $i
let i++
done
echo "最后i的值为: $i"
文章图片
文章图片
文章图片
文章图片
文章图片
#!/ bin/ bash
i=1
while [ $i -le 100 ]
do
if [[ $i%3 -ne 0 ]]
then
echo "$i"
fi
let i++
done
文章图片
文章图片
2.2while语句应用示例 1)示例1
批量添加用户
用户名称以stu开头,按数字顺序进行编号
一共添加20个用户,即stu1、stu2、…stu20
初始密码均设为123456
2)示例2
猜商品价格游戏
通过变量RANDOM获得随机数
提示用户猜测并记录次数,猜中后退出循环
3.until语句的结构 重复测试某个条件,只要条件不成立则反复执行
until条件测试操作
do
命令序列
done
文章图片
#!/bin/bash
i=1
sum=0
until[ $i -eq 51 ]
do
sum=$[$i+$sum]
let i++
done
echo "$sum"
4.shell函数 4.1shell函数 函数的作用
函数的定义(两种方式)
1
function函数名{
command
}//这是一种规范写法
2
函数名(){
//最常用因为最简洁
command
}
4.2Shell函数 1)将命令序列按格式写在一起
2)可方便重复使用命令序列
3)Shell函数定义
#!/bin/bash
f1 () {echo hello
}
f2 () {echo world
}
f3 () {echo "$(f1) $(f2)"
}
f3
#!/bin/bash
function backuprepo {cd /etc/yum.repos.d
mkdir repo . bak
mv *.reporepo.bak
mount /dev/sr0/mnt > /dev/ null
}
makelocalrepo () {echo -e'
[local]
name=local
baseurl=file:///mnt
enabled=l
gpgcheck=0' > local.repo
}
uselocalrepo () {yum clean all > /dev/null
yum makecache > /dev/null
yum install -y httpd > /dev/null
}
##############main##################
backuprepo
makelocalrepo
uselocalrepo
#!/ bin/ bash
function test1 {read -p"请输入数字" num
return s[$num*2]
}
test1
echo $?
#!/bin/bash
sum () {read -p "请输入第一个参数" NUM1
read -p "请输入第二个参数" NUM2
echo "你输入的两个数为: $NUM1 和 $NUM2"
SUM=$(($NUM1+$NUM2))
echo "两个数的和为: $SUM"
}
sum
#!/bin/bash
myfunc () {a=8
echo $a
}
a=9
myfunc
echo $a
文章图片
文章图片
文章图片
5.Shell数组 应用场景包括
获取数组长度
获取元素长度
遍历元素
元素切片
元素替换
元素删除
第一种:直接把要加入数组的元素用小括号括起来,中间用空格分开
num= (11223344)
${ #num} 显示字符串长度
数组名= (value0value1value2)第二种:精确的给每一个下标索引定义一个值加入数组,索引数字可以不连续num= ( [0]=55[1]=66[2]=77 [4]=88)数组名=([0]=value[1] =value[2]=value. . .)第三种:先把要加入数组的元素全部先赋值给一个变量,然后引用这个变量加入到数组list=“11 12 13 14”
num= ( $list)方法三:
列表名="value0value1value2...."
数组名=($列表名)第四种根据下标定义
数组名[0]="11"
数组名[0]="22"
数组名[0]="33"数组名[0]="value"
数组名[1]="value"
数组名[2]="value"
文章图片
文章图片
文章图片
文章图片
6.Shell脚本调试 1)echo命令
2)bash命令
命令语法
sh [-nvx]脚本名
常用选项
-n、-V、-X
3)set命令
set -x:开启调节模式
set +x:关闭调节模式
总结 1)for语句的结构
2)while语句的结构
3)until语句的结构
4)Shell函数定义方法
5)数组使用方法
推荐阅读
- Shell-Bash变量与运算符
- Linux下面如何查看tomcat已经使用多少线程
- Beego打包部署到Linux
- python青少年编程比赛_第十一届蓝桥杯大赛青少年创意编程组比赛细则
- HTML基础--基本概念--跟着李南江学编程
- 我的软件测试开发工程师书单
- Linux|109 个实用 shell 脚本
- linux定时任务contab
- 芯灵思SinlinxA33开发板Linux内核定时器编程
- 关于响应式编程的十个问题