Shell中的条件测试和循环语句
1.条件测试:test或[
如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为0

运行结果:
带与、或、非的测试命令
[ ! EXPR ] : EXPR可以是上表中的任意一种测试条件,!表示逻辑反
[ EXPR1 -a EXPR2 ] : EXPR1和EXPR2可以是上表中的任意一种测试条件,-a表示逻辑 与
[ EXPR1 -o EXPR2 ] :EXPR1和EXPR2可以是上表中的任意一种测试条件,-o表示逻辑 或
2. if/then/elif/else/fi
Shell中用用if、then、elif、else、fi这几几条命令实现分支支控制

运行结果:

Shell还提供了&&和||语法,&&相当于“if...then...”,而||相当于“if not...then...”。
-a和-o仅用于在测试表达式中连接两个测试条件

3、case/esac
Shell脚本的case可以匹配字符串和Wildcard,每个匹配分支可以有若干 条命令,末尾必须以;;结束,执行行时找到第一个匹配的分支支并执行行相应的命令,然后直接跳 到esac之后
运行结果:

循环语句
4、for/do/done
如下例子:

运行结果:

5、while/do/done
如下例子:

运行结果:

6. 位置参数和特殊变量
有很多特殊变量是被Shell自动赋值的,以下是常用的位置参数和特殊变量
$0 相当于C语言言main函数的argv[0]
$1、$2... C语言言main函数 的argv[1]、argv[2]...
以上这些称为位置参数(Positional Parameter)
$# 相当于C语言言main函数的argc - 1
$@ 表示参数列表"$1" "$2" ...,例如可以用用在for循环中的in后面。
$? 上一条命令的Exit Status
Shell中的条件测试和循环语句的更多相关文章
- shell脚本学习—条件测试和循环语句
条件测试 1. 条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假, 则命令的Exit Status为1(注意与 ...
- Shell脚本的条件控制和循环语句
条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expre ...
- Python中的条件选择和循环语句
一.条件选择语句 Python中条件选择语句的关键字为:if .elif .else这三个.其基本形式如下: if condition: block elif condition: block ... ...
- Shell学习(三)——Shell条件控制和循环语句
参考博客: [1]Shell脚本的条件控制和循环语句 一.条件控制语句 1.if语句 1.1语法格式: if [ expression ] then Statement(s) to be execut ...
- Shell脚本的条件测试与比较
Shell脚本的条件测试与比较 一.shell脚本的条件测试 通常,在bash的各种条件结构和流程控制结构中都要进行各种测试,然后根据测试结构执行不同的操作,有时也会与if等条件语句相结合,来完成测试 ...
- Shell脚本下条件测试(eq.ne.....)(转载)
转载:http://cxj632840815.blog.51cto.com/3511863/1168709 Shell编程中的条件测试 在Linux编程中经常会用到判断数值的大小,字符串是否为空这样或 ...
- shell脚本之六:shell脚本的条件测试与比较
六.shell脚本的条件测试与比较 (一)条件表达式的常见语法 1.条件表达式6种写法(if,while) 语法1:test<测试表达式> 语法2:[ <测试表达式>] #中括 ...
- Python - 条件控制、循环语句 - 第十二天
Python 条件控制.循环语句 end 关键字 关键字end可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符,实例如下: Python 条件语句是通过一条或多条语句的执行结果(True 或 ...
- javascript基础入门之js中的结构分支与循环语句
javascript基础入门之js中的结构分支与循环语句 程序的结构①顺序结构:自上而下:②选择(分支)结构:多条路径,根据不同的条件,只执行其中一个:③循环结构:重复某些代码④配合特定的语句实现选择 ...
随机推荐
- 关于NGINX在wnidows下面和linux下面的多站点的反向代理的配置
原创文章,转载注明出处 nginx作为一款优秀的反向代理软件,以其好用,易于搭建负载均衡的网站集群而著称,这里分别记录一下工作中用到nginx作为负载以及多站点发布的时候一些配置和注意事项 一 ng ...
- 03 Redis发布与订阅
以qq群的公告,单个发布者,多个收听者为例 发布/订阅 实验 发布订阅的命令 PUBLISH channel msg 将信息 message 发送到指定的频道 channel SUBSCRIBE ch ...
- 原生javascript的意义
原生JS是指遵循ECMAscript标准的javascript,不同于微软的jscript也不依赖于任何框架,依托于浏览器标准引擎的脚本语言. jquery是在原生态的js上集成的框架资源,使用jqu ...
- Hadoop伪分布式重启正确流程
既然是伪分布式,那就不可避免的设计到重启Hadoop服务或者重启Hadoop服务器的情况,正确的停止和重启是很有必要的. 首先是Hadoop服务的停止,使用 ./sbin/stop-all.sh脚本来 ...
- ShuffleNet系列学习笔记
ShuffleNet是旷世提出的高效轻量化网络,是一款很值得一提的轻量化网络,其相关论文也是很有价值的. ShuffleNet V1 该网络提出于2017年,论文为<ShuffleNet: An ...
- Centos7 初始化
systemctl disable firewalld sed -ri '/^[^#]*SELINUX=/s#=.+$#=disabled#' /etc/selinux/config grubby - ...
- VSCode配合chrome浏览器调试cocos2d js项目
1.准备阶段 具备调试功能的VSCode(我的是在win10上,版本是1.17.1) 在VSCode里下载安装Debugger for Chrome扩展插件. 2.具体操作 创建一个cocosjs工程 ...
- 检测字符串是否为UTF8编码
/** * 检测字符串是否为UTF8编码 * @param string $str 被检测的字符串 * @return boolean */ function is_utf8($str){ $len ...
- usb驱动正在使用不能卸载
@ubuntu:/home/lyd# rmmod cyusb3610rmmod: ERROR: Module cyusb3610 is not currently loadedroot@ubuntu: ...
- 微信里关闭窗口 js
需要在微信中关闭页面窗口,不过window.close()不管用,问过群里才知道微信有自带的方法能关闭窗口,记录一下(这个只针对微信有效哦): WeixinJSBridge.call('closeWi ...