1.Shell编程循环语句(if 、while、 until)
循环语句
for循环语句
读取不同的变量值,用来逐个执行同一组命令
格式:
for 变量名 in 取值列表
do
命令序列
done

示例:批量创建用户并设置密码
[root@localhost data]# vim xh.sh


示例:使用for循环进行运算
[root@localhost data]# vim xh.sh


示例2:循环判断网络是否ping通
[root@localhost data]# vim ping.sh


while循环语句
- 重复测试某个条件,只要条件成立则反复执行
- 常在不知道范围的时候成立
格式:
while 条件测试操作
do
命令序列
done

示例:猜商品价格
[root@localhost data]# vim spjg.sh


untli循环语句
- 重复测试某个条件,只要条件不成立则反复执行
格式:
until 条件4测试操作
do
命令序列
done

示例:
[root@localhost data]# vim until.sh


登入gb用户测试再次执行脚本


示例2:求和1+到100
[root@localhost data]# vim qh.sh


示例3:0-100偶数求和
[root@localhost data]# vim os.sh


示例4:0-100的奇数和
[root@localhost data]# vim js.sh


shell函数
将命令序列按照格式写在一块
可方便重复使用命令序列
shell函数定义
格式1:
[ function ] 函数名 () {
命令序列
[ return x ] \#使用return或者exit可以显式的结束函数
}
格式2:
函数名 (){
命令序列
}
函数注意事项
直接写函数中调用
函数直接写函数名同名函数后一个生效
调用函数一定要先定义
只要先定义了调用的其他函数定义顺序无关
函数调用的方法
示例
[root@localhost data]# vim hs.sh


获取函数的返回值
方法一


方法二


函数传参
在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数…即使用位置参数来实现参数传递。
[root@localhost data]# vim cc.sh


[root@localhost data]# vim cc.sh


函数变量的作用范围
- 函数在shell脚本中仅在当前shell环境中有效
- shell脚本中变量默认全局有效
- 将变量限定在函数内部使用local命令
示例1:



示例2:将变量限定在函数内部使用local命令
[root@localhost data]# vim bl.sh


函数的递归
调用自己本身
示例:求任意数字的阶乘
[root@localhost data]# vim jc.sh


函数库
作用
可以事先创建一个函数库文件,在里面定义各种常用的函数,然后可以在别的shell脚本中直接引用这个函数库文件,使得不需要再次定义函数即可直接调用函数
示例:



shell数组
shell数组的定义
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组)
数组元素的下标由 0 开始。
Shell 数组用括号来表示,元素用"空格"符号分割开
在shell语句中,使用、遍历数组的时候,数组格式要写成 ${arr[@]} 或 ${arr[*]}
定义数组的方法
示例1:
格式:
数组名=(value1 value2 value3 ..... )

示例2:
数组名=([0]=value1 [1]=value2......)


示例3:
数组名[0]="value1"
数组名[1]="value2"
数组名[2]="value3"

数组遍历
[root@localhost data]# vim bl.sh


数组切片
格式:${数组名[@/*]:其实位置:长度}

数组替换
格式:${数组名[@/*]:/查找字符/替换字符}

数组删除和指定下标的值删除

数据追加元素
使用下标追加
格式1:数组名[下标]=变量
格式2:数组名+=(变量1 变量2)


查看函数

declare -f #查看具体定义
查看所有数组

1.Shell编程循环语句(if 、while、 until)的更多相关文章
- Shell 编程 循环语句
本篇主要写一些shell脚本循环语句的使用. for 循环 指定次数 #!/bin/bash for ((i=1;i<=10;i++)) do echo $i done [root@localh ...
- shell编程——if语句【转载】
(2)shell编程——if语句_macg_新浪博客http://blog.sina.com.cn/s/blog_6151984a0100ekl6.html shell编程——if语句转载 if 语句 ...
- 【转载】shell编程——if语句 if -z -n -f -eq -ne -lt
shell编程中条件表达式的使用 if 条件then Commandelse Commandfi 别忘了这个结尾 If语句忘了结尾fites ...
- Shell 编程 until语句
本篇主要写一些shell脚本until语句的使用. 计算1-50的和 #!/bin/bash i=0 s=0 until [ $i -eq 51 ];do let s+=i;let i++ done ...
- Shell 编程 case语句
本篇主要写一些shell脚本case语句的使用. 字符判断 #!/bin/bash read -p "请输入一个字符:" char case $char in [a-z]|[A-Z ...
- Shell 编程 条件语句
本篇主要写一些shell脚本条件语句的使用. 条件测试 test 条件表达式 [ 条件表达式 ] 文件测试 -d:测试是否为目录(Directory). -e:测试文件或目录是否存在(Exist). ...
- shell编程——if语句 if -z -n -f -eq -ne -lt
if 条件then Commandelse Commandfi 别忘了这个结尾 If语句忘了结尾fitest.sh: line 14: sy ...
- shell编程——if语句
if 语句格式 if 条件 then Command else Command fi 别忘了这个结尾 If语句忘了结尾fi test.s ...
- Linux shell while循环语句
for :明确循环次数 while :不确定循环换次数 while循环 (1) while CONDITION:do statement statement < ...
随机推荐
- Java学习day30
线程分为用户线程和守护线程,虚拟机必须确保用户线程执行完毕,虚拟机不用等待守护线程执完毕 并发:同一个对象被多个线程同时操作,例如上万了同时抢100张票,手机银行和柜台同时取同一张卡里的钱 处理多线程 ...
- 【洛谷】P4555 [国家集训队]最长双回文串
P4555 [国家集训队]最长双回文串 题源:https://www.luogu.com.cn/problem/P4555 原理:Manacher 还真比KMP好理解 解决最长回文串问题 转化为长度为 ...
- shell基础知识讲解
第1章 shell基础 1.1 什么叫做shell编程 shell编程也叫做bash高级编程语法 1.2 常见的shell命令解释器 bash redhat和centos使用 d ...
- nodejs mysql pool 只能插入10条记录或者较少记录
BEGIN; 解决方案:从连接池获取到的Connection,执行完操作后,必须及时关闭! 即:connection.end(); 使用后发现console有打印出警告信息,大致意思为 end() 方 ...
- busybox+linux Deplay 手机服务器
环境下载地址: Linux Deplay: https://github.com/meefik/linuxdeploy/releases Busybox : https:/ ...
- ServletContext类 (共享数据+获取初始化的参数+请求转发+读取资源文件)
ServletContext对象 web容器在启动的时候,它会为每个web程序都创建一个对应的ServletContext对象,它代表了当前的 web应用: 作用 1.共享数据 (一般用sessio ...
- 修改本地仓库Maven,设置镜像
修改本地仓库的位置: 先建立 文件路径: 进入文件夹目录: 就可以看到一个配置文件夹 就在里面修改本地仓库的路径,设置阿里云镜像 添加本地阿里云镜像: 如下图: 内容如下: <mirror> ...
- 【ACM程序设计】并查集
并查集 并查集(Union-find Sets)是一种非常精巧而实用的数据结构,它主要用于处理一些不相交集合的合并问题.一些常见的用途有:求连通子图.求最小生成树的Kruskal算法和求最近公共祖先( ...
- screen使用小结
目录 安装 shell-screen-window关系 常用参数 快捷键 离开当前screen 打开一个新的窗口 查看窗口列表 窗口的快速切换 回到行首 关闭窗口 关闭所有窗口 关闭screen 删除 ...
- 网络排查工具MTR介绍
开源Linux 回复"读书",挑选书籍资料~ 常用的 ping,tracert,nslookup 一般用来判断主机的网络连通性,其实 Linux 下有一个更好用的网络连通性判断工具 ...