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

最新文章

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

热门文章

  1. 误删除/dec/zero,/dev/null
  2. multipart/form-data请求与文件上传的细节
  3. 在mysql 上如何在不影响生产的情况下删除一个大表
  4. xml_dom4j
  5. linux基本操作和常用命令(2)
  6. verilog分频模块设计
  7. Jenkins 入门系列--jenkins 介绍
  8. 测开常见面试题什么是redis
  9. java8学习之Stream深度解析与源码实践
  10. 〇一——body内标签之交互输入标签一