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

  

函数的作用:

  1. 函数在 Shell 脚本中仅在当前Shell环境中有效;
  2. Shell 脚本中变量默认全局有效;
  3. 将变量限定在函数内部使用 local 命令。

例子:求和两个数字,并通过sum(){}定义函数 使用read命令交互输入两个数求和

函数的参数用法:

函数名称 参数1 参数2 参数3....

函数的表示:

$1 $2 $3...

  

函数的递归:调用自己本身的函数

递归目录:

递归阶乘:

  

shell脚本之循环语句与函数的更多相关文章

  1. Shell脚本中循环语句for,while,until用法

    循环语句: Bash Shell中主要提供了三种循环方式:for.while和until. 一.for循环 for循环的运作方式,是讲串行的元素意义取出,依序放入指定的变量中,然后重复执行含括的命令区 ...

  2. 自动化运维必须要学的Shell脚本之——循环语句(for、while和until循环)

    1. 循环前先了解echo的使用 1.1 echo -n 表示不换行输出 1.2 echo -e 输出转义字符,将转义后的内容输出到屏幕上 常见的转义字符有: 1.2.1 \b 相当于退格键 转义后相 ...

  3. shell脚本之循环语句 for-while-until

    目录: 一.for循环语句 二.while循环语句 三.unti循环语句   一.for循环语句 读取不同的变量值,用来逐个执行同一组命令 举例 批量添加用户◆ 用户名存放在users.txt文件中, ...

  4. shell编程之循环语句for / while / until

    shell编程之循环语句与函数 一.条件测试 二.循环语句 ① for循环语句结构(遍历) 示例1 示例2 ② while循环语句结构(迭代) 示例1 示例2 ③ until 循环语句结构 示例1 一 ...

  5. 03 shell编程之case语句与函数

    本文所有内容均来自当年博主当年学习笔记,若有不足欢迎指正 Shell编程之case语句与函数 学习目标: 掌握case语句编程 掌握shell函数的使用 目录结构: Case语句 Case语句的作用 ...

  6. 04 shell编程之循环语句

    Shell编程之循环语句 学习目标: 掌握for循环语句编程 掌握while循环语句编程 目录结构: For循环语句 l  读取不同的变量值,以逐个执行同一组命令 l  For语句结构 for 变量名 ...

  7. Linux Shell脚本编程while语句

    Linux Shell脚本编程while语句案例 1,每隔3秒,打印一次系统负载 #!/bin/bash while truedo    uptime    sleep 3done 2,把监控结果保存 ...

  8. shell 脚本之判断语句 if 详解

    使用 Linux 系统这么长时间,对 shell 脚本也算是比较熟悉.其实不管是搞开发,还是搞运维,shell 脚本都是必备的基本技能.这次抽时间好好总结一下 shell 方面的知识,综合的再学习一下 ...

  9. Shell脚本中使用function(函数)示例

    这篇文章主要介绍了Shell脚本中使用function(函数)示例,本文着重讲解的是如何在shell脚本中使用自定义函数,并给出了两个例子,需要的朋友可以参考下   函数可以在shell script ...

随机推荐

  1. springboot单元测试为什么排除junit-vintage-engine

    https://blog.csdn.net/Ber_Bai/article/details/117001443 如果不排除,就需要使用@RunWith注解? 25-springboot整合单元测试指定 ...

  2. Clover支持目录多标签页

    1.简介 Clover是Windows Explorer资源管理器的一个扩展, 为其增加类似谷歌 Chrome 浏览器的多标签页功能. 2.推荐用法 下面是我使用的Clover的截图: 可以看到同时打 ...

  3. PHP-FPM 开启慢日志记录

    首先,找到 php-fpm 所在的目录: 使用 which php-fpm 使用 whereis php-fpm 然后找到 php-fpm.conf 所在的目录: 使用 ps -ef | grep p ...

  4. python 之 pip、pypdf2 安装与卸载

    pip是个啥? pip 是一个现代的,通用的 Python 包管理工具.提供了对 Python 包的查找.下载.安装.卸载的功能. 第一步:pip 下载:https://pypi.org/projec ...

  5. 工厂模式(python)

    以字符串作为传递参数 以类名作为传递参数 来自为知笔记(Wiz)

  6. Eclipse导包

    导包快捷键:"Ctrl+Shift+M",但是一般不用,一般利用整理包的快捷键. 整理包的快捷键:"Ctrl+Shift+O",与导包的区别在于,有用的留着,没 ...

  7. 有道翻译js加密参数分析

    平时在渗透测试过程中,遇到传输的数据被js加密的比较多,这里我以有道翻译为例,来分析一下它的加密参数 前言 这是有道翻译的界面,我们随便输入一个,抓包分析 我们发现返回了一段json的字符串,内容就是 ...

  8. Redis介绍一

    一.五中数据类型 String: 字符串 Hash: 散列 List: 列表 Set: 集合 Sorted Set: 有序集合 Redis 发布订阅 Redis 发布订阅 (pub/sub) 是一种消 ...

  9. 《剑指offer》面试题26. 树的子结构

    问题描述 输入两棵二叉树A和B,判断B是不是A的子结构.(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值. 例如: 给定的树 A:      3     / ...

  10. Docsify部署IIS

    什么是Docsify? 一个神奇的文档网站生成器.docsify 可以快速帮你生成文档网站.不同于 GitBook.Hexo 的地方是它不会生成静态的 .html 文件,所有转换工作都是在运行时.如果 ...