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
最新文章
- c++的一个有趣的程序
- C语言通过timeval结构设置周期
- <;if>;<;else/>;<;/if>; 语句
- 关于java中JButton的样式设置(的一些我们应该知道的函数)(转)
- js方式进行地理位置的定位api搜集
- Oracl 动态执行表不可访问,本会话的自动统计被禁止
- 在cocos2d-x中使用位图字体
- android查看真机中的数据库
- [转载]PDO防注入原理分析以及使用PDO的注意事项
- Eclipse中JBOSS5.1无法启动的问题解决办法
- Q_DISABLE_COPY
- (七):C++分布式实时应用框架 2.0
- java 11 完全支持Linux容器(包括Docker)
- j假设程序需要要一个int烈血的刀变量来保存1英里所包含的步数(5280)为该变量编写一条声明语句。
- 吴裕雄 26-MySQL 复制表
- 使用Linq对Hashtable和Dictionary<;T,T>;查询的效率比较
- CFGym 101490E 题解
- OpenGL ES学习笔记(二)&mdash;&mdash;平滑着色、自适应宽高及三维图像生成
- XJOI 3629 非严格次小生成树(pqq的礼物)
- php安装pcntl扩展