shell脚本之循环语句与函数
shell脚本之循环语句与函数
echo的用法:
echo -n
#表示不换行输出 echo -e
#输出转义字符,将转义后的内容输出到屏幕上
转义字符:
\n :换行,被输出的字符从"\n"处开始另起一行
\t :转以后表示插入tab,即横向制表符
\r :光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"\r"之前同等长度的字符;但是当"\r"后面不存在任何字符时,
"\r"前面的字符不会被覆盖

1、for循环
for循环经常使用在已经知道要进行多少次循环的场景
读取不同的变量值,用来逐个执行同一组命令
语法:
for 变量名 in 取值列表
do
命令序列
done



2、while循环
重复测试某个条件,只要条件成立则反复执行
语法:
while [ 条件测试操作 ]
do 命令序列
done

例子:猜数字


3、until循环
重复测试某个条件,只要条件不成立则反复执行
语法:
unit 条件测试操作
do 命令序列
done
例子:求和1到10


4、多重循环
在循环内部再使用一个循环称为嵌套循环


当满足条件的情况下break会跳出当前循环体,
当满足条件的情况下exit会直接退出当前脚本,
continue中止某次循环中的命令,但不会完全中止整个命令
5、shell函数
将命令序列按格式写在一起,可方便重复使用命令序列
格式:
function 函数名 {
命令序列
}
函数名() {
命令序列
}
调用函数:
函数名 【函数1】【函数2】
return表示退出函数并返回一个退出值,脚本中可以用 $?变量显示该值
使用原则:
函数一-结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码
退出状态码必须是0~255,超出时值将为除以256取余
函数的传参:
#!/bin/bash
sum1() {
sum=$[$1 + $2]
echo $sum
}
read -p "输入第一个参数: " first
read -p "输入第二个参数: " second
sum1 $first $second
res= $(sum1)
echo $res
sum2() {
sum=$[$1 + $2]
echo $ sum
}
sum2 $1 $2

函数的作用:
- 函数在 Shell 脚本中仅在当前Shell环境中有效;
- Shell 脚本中变量默认全局有效;
- 将变量限定在函数内部使用 local 命令。
例子:求和两个数字,并通过sum(){}定义函数 使用read命令交互输入两个数求和


函数的参数用法:
函数名称 参数1 参数2 参数3....
函数的表示:
$1 $2 $3...
函数的递归:调用自己本身的函数
递归目录:


递归阶乘:


shell脚本之循环语句与函数的更多相关文章
- Shell脚本中循环语句for,while,until用法
循环语句: Bash Shell中主要提供了三种循环方式:for.while和until. 一.for循环 for循环的运作方式,是讲串行的元素意义取出,依序放入指定的变量中,然后重复执行含括的命令区 ...
- 自动化运维必须要学的Shell脚本之——循环语句(for、while和until循环)
1. 循环前先了解echo的使用 1.1 echo -n 表示不换行输出 1.2 echo -e 输出转义字符,将转义后的内容输出到屏幕上 常见的转义字符有: 1.2.1 \b 相当于退格键 转义后相 ...
- shell脚本之循环语句 for-while-until
目录: 一.for循环语句 二.while循环语句 三.unti循环语句 一.for循环语句 读取不同的变量值,用来逐个执行同一组命令 举例 批量添加用户◆ 用户名存放在users.txt文件中, ...
- shell编程之循环语句for / while / until
shell编程之循环语句与函数 一.条件测试 二.循环语句 ① for循环语句结构(遍历) 示例1 示例2 ② while循环语句结构(迭代) 示例1 示例2 ③ until 循环语句结构 示例1 一 ...
- 03 shell编程之case语句与函数
本文所有内容均来自当年博主当年学习笔记,若有不足欢迎指正 Shell编程之case语句与函数 学习目标: 掌握case语句编程 掌握shell函数的使用 目录结构: Case语句 Case语句的作用 ...
- 04 shell编程之循环语句
Shell编程之循环语句 学习目标: 掌握for循环语句编程 掌握while循环语句编程 目录结构: For循环语句 l 读取不同的变量值,以逐个执行同一组命令 l For语句结构 for 变量名 ...
- Linux Shell脚本编程while语句
Linux Shell脚本编程while语句案例 1,每隔3秒,打印一次系统负载 #!/bin/bash while truedo uptime sleep 3done 2,把监控结果保存 ...
- shell 脚本之判断语句 if 详解
使用 Linux 系统这么长时间,对 shell 脚本也算是比较熟悉.其实不管是搞开发,还是搞运维,shell 脚本都是必备的基本技能.这次抽时间好好总结一下 shell 方面的知识,综合的再学习一下 ...
- Shell脚本中使用function(函数)示例
这篇文章主要介绍了Shell脚本中使用function(函数)示例,本文着重讲解的是如何在shell脚本中使用自定义函数,并给出了两个例子,需要的朋友可以参考下 函数可以在shell script ...
随机推荐
- SpringCloud创建Config多客户端公共配置
1.说明 基于已经创建好的Spring Cloud配置中心, 在配置中心仅保存一套配置文件, 多个客户端可以通过配置中心读取到相同的配置, 而不需要在每个客户端重复配置一遍, 下面以一个Config ...
- Oracle导出导入dmp文件(exp.imp命令行)
1.说明 使用Oracle命令行导出导入dmp文件, 从而在两个数据库之间快速转移数据, 也可以用来作为数据库的备份, 将来可以快速恢复数据. 命令:导出exp.导入imp 步骤: 使用Oracle的 ...
- Azure Terraform(九)GitHub Actions 实现 Infra 资源的自动化部署
思路浅析 使用 Terraform Code 部署 Azure 基础设施资源是特别受欢迎的,我曾经有写文章分享过利用 Azure DevOps 自动部署 Terraform Code 所描述的 Azu ...
- update sql时,常记错同时更新多个参数用and,正确是用逗号
记录一下,经常记错的一个点,在update多个参数时,多个参数之间用and连接,这个时候,语句就会报错了 其实,正确的是用逗号隔开, 使用SQL中的update更新多个字段值,set后面的条件要用逗号 ...
- Java 私有接口 【类中嵌套接口】
1.前言 接口十分常用,能规范实现类的命名 和 实现多个实现类的向上转型成统一类型 ,但是接口的修饰符只能是 public吗? 当然不是,可以是private , 难道是像这样? 显然不可以,已经报错 ...
- spring security 自动登录 --- 心得
1.前言 仍然是使用cookie存储登录数据,但是存储的数据 由 spring security自动创建 ,当登出后自动删除cookie, 如果不登出也仍在生命周期内,关闭浏览器再打开将会自动登录,无 ...
- c++智能指针的使用,shared_ptr,unique_ptr,weak_ptr
c++智能指针的使用 官方参考 普通指针的烦恼:内存泄漏,多次释放,提前释放 智能指针 负责自动释放所指向的对象. 三种智能指针 shared_ptr,unique_ptr,weak_ptr: 将sh ...
- Cesium中文网——如何开发一款地图下载工具[一]
Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ Cesium中文网的朋友们的其中一个主题是:自己独立开发一款地图 ...
- 第02讲:Flink 入门程序 WordCount 和 SQL 实现
我们右键运行时相当于在本地启动了一个单机版本.生产中都是集群环境,并且是高可用的,生产上提交任务需要用到flink run 命令,指定必要的参数. 本课时我们主要介绍 Flink 的入门程序以及 SQ ...
- golang中的sync
1. Go语言中可以使用sync.WaitGroup来实现并发任务的同步 package main import ( "fmt" "sync" ) func h ...