循环语句

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)的更多相关文章

  1. Shell 编程 循环语句

    本篇主要写一些shell脚本循环语句的使用. for 循环 指定次数 #!/bin/bash for ((i=1;i<=10;i++)) do echo $i done [root@localh ...

  2. shell编程——if语句【转载】

    (2)shell编程——if语句_macg_新浪博客http://blog.sina.com.cn/s/blog_6151984a0100ekl6.html shell编程——if语句转载 if 语句 ...

  3. 【转载】shell编程——if语句 if -z -n -f -eq -ne -lt

    shell编程中条件表达式的使用 if  条件then Commandelse Commandfi                              别忘了这个结尾 If语句忘了结尾fites ...

  4. Shell 编程 until语句

    本篇主要写一些shell脚本until语句的使用. 计算1-50的和 #!/bin/bash i=0 s=0 until [ $i -eq 51 ];do let s+=i;let i++ done ...

  5. Shell 编程 case语句

    本篇主要写一些shell脚本case语句的使用. 字符判断 #!/bin/bash read -p "请输入一个字符:" char case $char in [a-z]|[A-Z ...

  6. Shell 编程 条件语句

    本篇主要写一些shell脚本条件语句的使用. 条件测试 test 条件表达式 [ 条件表达式 ] 文件测试 -d:测试是否为目录(Directory). -e:测试文件或目录是否存在(Exist). ...

  7. shell编程——if语句 if -z -n -f -eq -ne -lt

    if  条件then Commandelse Commandfi                              别忘了这个结尾 If语句忘了结尾fitest.sh: line 14: sy ...

  8. shell编程——if语句

    if 语句格式 if  条件 then  Command else  Command fi                              别忘了这个结尾 If语句忘了结尾fi test.s ...

  9. Linux shell while循环语句

    for :明确循环次数 while :不确定循环换次数 while循环 (1) while CONDITION:do       statement       statement       < ...

随机推荐

  1. RMI反序列化学习

    RMI学习 1.RMI简介 RMI(Remote Method Invocation),远程方法调用方法,其实就是本地java虚拟机要调用其他java虚拟机的方法,两个虚拟机可以是运行在相同计算机上的 ...

  2. NodeJS学习日报day4——模块化

    // console.log(module); // 执行顺序不同,结果也不同 // module.exports = { // name : 'Cra2iTeT', // hi() { // con ...

  3. OpenHarmony 3.1 Beta版本关键特性解析——OpenHarmony图形框架

    (以下内容来自开发者分享,不代表 OpenHarmony 项目群工作委员会观点) 李煜 华为技术有限公司 崔坤华为技术有限公司 众所周知,动画是系统和应用与用户交互的重要环节.动画效果的好坏会直接影响 ...

  4. HCIE笔记-第二节-数据封装+传输介质

    数据传输的形式 1.电路交换 在通信之前,维护一条逻辑意义上的链路,这条链路仅仅可以传递两者的数据 2.报文交换 在数据之外,加上能够标识接收者.发送者的信息 3.分组交换(最主流) 依然进行报文交换 ...

  5. python基础练习题(斐波那契数列)

    day4 --------------------------------------------------------------- 实例006:斐波那契数列 题目 斐波那契数列. 题目没说清楚, ...

  6. Hyperledger Fabric 通道配置文件和容器环境变量详解

    摘要 Fabric 网络启动的过程中需要进行大量配置,新学时对各个配置的作用一无所知,这导致我曾在网络出问题时先对配置文件的内容进行排列组合后再祈祷它能在某个时刻顺利运行,因此掌握 fabric 各个 ...

  7. 如何使用phpstudy搭建sqli-lab靶场

    一.环境准备 下载并安装phpstudy,链接如下: phpstudy下载 选择自己想要的版本,安装目录自己选,其他的一路默认即可 二.下载源码 源码链接:sqli-labs源码下载 选择Downlo ...

  8. 从零开始,开发一个 Web Office 套件(16):拖动控制点,调整编辑器大小

    这是一个系列博客,最终目的是要做一个基于 HTML Canvas 的.类似于微软 Office 的 Web Office 套件(包括:文档.表格.幻灯片--等等). 博客园:<从零开始, 开发一 ...

  9. MongoDB排序时内存大小限制和创建索引的注意事项!

    线上服务的MongoDB中有一个很大的表,我查询时使用了sort()根据某个字段进行排序,结果报了下面这个错误: [Error] Executor error during find command ...

  10. 基于DEM的坡度坡向分析

    坡度坡向分析方法 坡度(slope)是地面特定区域高度变化比率的量度.坡度的表示方法有百分比法.度数法.密位法和分数法四种,其中以百分比法和度数法较为常用.本文计算的为坡度百分比数据.如当角度为45度 ...