`

Shell学习(5)流程控制

阅读更多

流程控制

 

Bash Shell中,流程控制命令有两大类:选择和循环。属于选择的有:if,case;属于循环的有:for,while,until;命令select既属于选择,也属于循环。不管是哪一种,均需进行条件测试,再根据测试结果,决定程序流程进行的方向。

Bash Shell Script可由许多命令组成,每一个命令执行后,都会传回一个结束状态值,成功返回0否则非0.Bash内置变量$?用来存储每个命令执行后传回的状态值。

 

if条件判断

完整的语法结构是

if 条件测试1; then
	命令区域1
elif 条件测试2; then
	命令区域2
else
	命令区域3
fi

 
其中elif可以多行数量不限,else只能有一行,也可以没有

条件测试可以有多种形式,测试结果是真是假,就看其传回的值是否为0.条件测试的写法有10种
1 执行某一个命令的结果:可以包含管道命令,其结果状态为最后一个命令执行的结果
2 传回某一命令执行结果的相反值:!命令
3 使用复合命令:((算式))  运算结果为0返回假,不为0返回真
4 使用Bash关键词'[['、']]'组成的式子:[[判断式]]  传回0为真,非0为假
5 使用内置命令:test 判断式  真值传回0,假值传回1  转义
6 使用内置命令:[判断式] 与test相同
7 使用-a、-o进行逻辑组合  a且o或
8 命令1&&命令2
9 命令1||命令2
10 &&和||复用

 

关于文件属性的判断式

关于字符串的条件判断式

关于算式的条件判断式

 

 

Case语句

case 待测项 in
	样式串行1) 命令区域1;;
	样式串行2) 命令区域2;;
	样式串行3) 命令区域3;;
	...
	*) 命令区域;;
esac

 

样式串中有好几个字符串时,要用| 隔开

 

样式串行可写成'( 样式串行)' ,或者' 样式串行)' ,后者更常见

 

For语句

 

for 变量 in 串行
do
	命令区域
done

 

串行是一些字符串的组合,彼此用$IFS 所定义的分割字符( 如空格符) 隔开,这些字符串称为字段。

证明IFS的确是由空格,制表符,换行符组成
[root@localhost shell]# echo "_${IFS:0:1}_"
_ _
[root@localhost shell]# echo "_${IFS:1:1}_"
_       _
[root@localhost shell]# echo "_${IFS:2:1}_"
_
_

 in 串行 可以不写,等同于

for 变量 in $@
do
	命令区域
done

 $@ 代表命令行所有参数

 

 

另一种for 格式

for ((初始条件; 终止条件; 异动项))
do
	命令区域
done

 

 

While语句

 

while 条件测试
do
	命令区域
done

 

Until语句

until 条件测试
do
	命令区域
done

 

Select 命令

select 选项变量 in 串行
do
	命令区域
done

select 命令建立一个列表。列表的选项,即串行中的各个字段。列表提示符号由Bash 的内置变量PS3 来定义,默认值#? 。只要改变PS3 的值,用户可以自定义提示符号。select 会给各个选项一个编号,从1 开始递增。当使用者键入编号,选择其中某一个选项时,该选项的内容就设置给选项变量,而键入的编号值则放入REPLY 变量中。

若要结束select 列表,可在命令区域输入break 命令,或按ctrl-D 结束

 

break和continue

分享到:
评论

相关推荐

    shell编程 创建shell脚本 shell 基础语法 shell流程控制语法 shell函数

    下面将详细介绍创建 Shell 脚本、Shell 基础语法、流程控制语法以及如何定义和使用 Shell 函数。 首先,让我们理解一下 Shell 编程的基础。Shell 是操作系统提供的一种命令解释器,用户通过 Shell 与操作系统进行...

    linux shell学习资料

    通过这三本书的学习,你将能够熟练地运用Shell,实现高效的工作流程,甚至可以创建自己的工具和脚本来简化日常任务。所以,无论你是Linux新手还是有经验的用户,这个学习资料包都将是你宝贵的参考资料。

    实用的shell学习资料

    **实用的Shell学习资料概述** Shell是Linux和Unix操作系统中的一种命令解释器,它作为用户与操作系统之间交互的界面,允许用户输入命令并执行。在众多的Shell中,Bash(Bourne Again SHell)是最流行的一个,广泛...

    shell基础学习资料

    #### 五、Shell命令与流程控制 - **Unix命令的使用**:Shell脚本支持多种Unix命令,这些命令用于执行常见的文件和文本操作。 - **常用命令及其功能**: - `echo`:打印文本到标准输出。 - `ls`:列出目录内容。...

    UNIX下的shell流程控制教程

    ### UNIX下的Shell流程控制教程...通过上述内容的学习,我们可以了解到Shell脚本中的流程控制结构是非常强大的工具,可以帮助我们构建复杂而灵活的自动化脚本。这些知识是每一个UNIX/Shell脚本开发者必须掌握的基础。

    shell学习经典资料

    1. “高级shell编程-ABS_Guide_cn(中文)”:这可能是《Advanced Bash-Scripting Guide》的中文版,该书深入介绍了bash shell的高级特性,包括函数、流程控制、文件操作、正则表达式、错误处理等。对于想要提升...

    shell脚本学习指南pdf

    - **运算符**: 熟悉算术运算符、比较运算符和逻辑运算符,用于条件判断和流程控制。 - **控制结构**: 包括if语句、case语句、for循环、while循环等,用于编写复杂的逻辑流程。 3. **函数和数组** - **函数**: ...

    shell脚本学习指南

    2. **流程控制**:`case`语句用于多分支选择,`break`和`continue`用于跳出循环或跳过当前迭代。 3. **错误处理**:`set -e`可以使脚本在遇到错误时立即退出,`trap`命令可捕获并处理信号。 4. **函数库**:通过`....

    很不错的Linux Shell的详细学习文档

    通过本文档的学习,读者应该能够掌握基本的Shell编程技巧,包括变量定义、脚本编写、命令使用和流程控制等。随着实践经验的积累,进一步探索Shell的强大功能,将能够在日常工作中更加高效地解决问题。希望这份学习...

    shell学习心得 下载

    以下是对`shell学习心得`相关知识点的详细说明: 1. **基础Shell文件格式与执行方式**: - Shell脚本通常以`.sh`为扩展名,例如`myscript.sh`。 - 要执行一个Shell脚本,可以使用`sh scriptname.sh`或首先赋予...

    shell学习方法

    ### Shell学习方法详解 #### 一、Shell简介 在计算机科学领域中,Shell是一种非常重要的交互式编程环境,被广泛应用于各种操作系统中,包括Linux、Unix等。Shell通常被称为“壳”,用来区别于操作系统的核心部分...

    Linux-shell脚本全面学习.pdf

    * 在 shell 脚本中可以使用三类命令: Unix 命令、流程控制命令和 Shell 内置命令 * Unix 命令: + `echo`:将文字容打印在屏幕上 + `ls`:文件列表 + `wc`:计算文件行数、单词数和字符数 + `cp`:文件拷贝 + ...

    shell脚本学习手册

    #### 五、Shell流程控制 1. **条件判断** - 使用`if`语句进行条件判断。 ```bash if [ "$num" -gt 10 ]; then echo "Number is greater than 10." fi ``` 2. **循环结构** - `for`循环: ```bash for i in ...

    shell编程学习资料

    在本文中,我们将深入探讨Shell编程的基础知识,包括基本命令、变量、流程控制以及sed和awk这两个强大的文本处理工具。 一、Shell基础 1. **Shell种类**:常见的Shell有Bash(Bourne-Again SHell)、C Shell(csh...

    Shell脚本学习指https://pan.baidu.com/s/1sPfOlmfcq1PmzOkD0ZnsyA

    如果它是某个Shell脚本学习案例的一部分,那么可能涉及文件操作、目录管理或者脚本中的变量和流程控制。 学习Shell脚本的主要知识点包括: 1. **基础语法**:了解Shell脚本的基本结构,如注释、变量声明、赋值、...

    linux shell脚本学习文档

    流程控制是脚本中的关键部分。条件语句(if-else)用于根据条件执行不同的代码块,例如检查某个文件是否存在。循环结构(for、while)则允许重复执行一段代码,直到满足特定条件为止。例如,`for file in *.txt; do ...

    shell基础学习资料.rar

    流程控制如`if`、`case`、`for`、`while`和`until`等,用于决定程序的执行路径。 10. **数组和关联数组**:在Bash中,除了常规的索引数组,还有关联数组,其键值可以是任何字符串,这对于存储和处理复杂数据很有用...

    Shell脚本学习指南.pdf

    8. **控制结构**:包括流程控制如if、case、for、while等,以及信号处理和陷阱(trap)。 9. **文件测试运算符**:用于检查文件的属性,如是否存在、是否可读写等,这些在脚本中处理文件时非常有用。 10. **脚本...

Global site tag (gtag.js) - Google Analytics