shell 脚本编程学习(三) 条件控制,循环控制
来源:互联网 发布:怎么获取股票数据 编辑:程序博客网 时间:2024/06/05 03:38
编程当然少不了条件控制和循环控制了,shell 脚本也有自己的条件和循环方法。
条件控制
if 语句
条件控制中最常用的就是 if 判断了,shell 中通过 if-then 语句来实现。它的结构是:
if some_condition; then do somethingfiif condition_1; then do somethingelif condition_2 do somethingelse do somethingfi
与 js 中的 if、else、else if 道理相同,需要注意的是 if 控制结构要用反过来写的 if 即 fi 来结束,在 shell 的其他控制结构中也有这样的规则。
不同于其他编程语言(例如 js),在 if 的 condition 中我们不能直接用 ==、!=、>、< 之类的逻辑运算符来写条件,需要借助一个 test 命令来实现逻辑判断。示例如下:
NAME='jack'if ( test $NAME = 'jack' ); then # 判断 NAME 是 jack echo 'hello jack'fiif ( test $NAME != 'jack' ); then # 判断 NAME 不是 jack echo 'not jack'fi
这里要注意 if 和括号之间的空格以及括号内语句中的空格是必须的,因为它们是shell 划分命令参数的依据。除了逻辑判断之外,test 命令还能通过一些选项判断文件目录和文件权限等。如果觉得写 test 麻烦,也可以用中括号代替括号,与写 test 的方式等价,同样也要注意命令中的空格。例如:
$NAME = 'jack'$DIR = '/etc'if [ $NAME = 'jack' ] # 逻辑判断,等价于 if ( test $NAME = 'jack' )if [ -d $DIR ] # 判断是否是文件夹if [ -e $DIR ] # 判断文件是否存在if [ -f $DIR ] # 判断文件存在并且是一个普通文件(不是目录或其他特殊的文件)
注意不像其他编程语言有数值类型,在 shell 中所有的变量都是字符串。所以想要进行数字的运算和比较需要借助其他命令(例如 expr),不能直接加减。
NUM=1NUM=NUM+1echo $NUM # 输出 1+1 而不是 2NUM=1NUM=`expr $NUM + 1` # 用 expr 命令进行数字运算,注意数字和运算符之间要有空格echo $NUM # 输出 2
case 语句
当判断一个变量的多种取值时,用 case 语句会比 if 更方便和清楚。shell 中 case 语句的语法如下:
case expression in pattern1) action1 ;; pattern2) action2 ;; pattern3) action3 ;; *) defaultAction ;;esac
除了语法不一样外,和其他语言的 case 作用相同,case 结构也用反写的 case 即 esac 来结束。
循环控制
while 语句
while 循环在编程语言中很常见,只要满足特定的条件,while 语句就重复执行代码块。在 shell 中条件判断也可以通过 test 命令或中括号的形式来实现,示例如下:
# 循环输出 1 到 9 的数字$NUM=1while [ $NUM != 10 ]do echo $NUM NUM=`expr $NUM + 1`done
until 语句
until 语句的条件与 while 相反,只要不满足特定的条件,until 语句就重复执行。例如:
# 循环输出 9 到 1 的数字$NUM=9until [ $NUM = 0 ] # 输出 9 到 1 的数字do echo $NUM NUM=`expr $NUM - 1`done
以上就是 shell 中常用的控制结构了,与其他编程语言类似,但要注意语法和细节上的差异。
- shell 脚本编程学习(三) 条件控制,循环控制
- shell 条件控制,循环
- Shell脚本的条件控制和循环语句
- Shell脚本的条件控制和循环语句
- shell编程(条件判断与流程控制)学习笔记
- Shell脚本常识--(循环控制)
- Shell脚本基础学习(三)----if-then控制
- Shell脚本编程-流控制(一)
- Shell脚本编程-流控制(二)
- Shell脚本入门(六) - 条件控制语句: if
- Shell脚本入门(七) - 条件控制语句: case
- Shell脚本[运算表达式,条件控制语句]
- Shell脚本入门(八) - 循环控制语句: while
- Shell脚本入门(九) - 循环控制语句:for in
- Linux命令与shell编程学习-15章控制脚本
- Shell编程之流程控制语句(条件判断)
- Shell脚本学习(二):条件语句与循环语句
- Python3条件控制、循环控制
- 世界坐标系与像素坐标系的点互相转换
- KAZE匹配算法源码
- C语言面向对象编程之六:配置文件解析
- linux ubuntu环境下安装jdk(要求网络畅通有一定网速)
- Linux命令行
- shell 脚本编程学习(三) 条件控制,循环控制
- ExtJS Button调用Ext.window.Window后,只能点开一次,第二次就点不开
- Shop项目Servlet抽取
- SystemServer到Launcher
- 库vector函数的熟悉
- linux 性能测试监控shell脚本
- Docker安装以及registry搭建
- 解决linux普通用户使用Wireshark的权限不足问题
- RecyclerView指定布局管理器