shell中if语句后面的[和]的左右空格
来源:互联网 发布:办公软件培训班 编辑:程序博客网 时间:2024/05/16 11:20
很多人都认为shell的语法过于死板,不好理解,很常见的一个例子就是if [ xxoo ]; then ooxx;fi这样的条件判断,如果“[”的左右或“]”的左边不加空格,shell就会出现语法问题.看上去这种语法分析跟很多语言的语法分析器不太一样,比如c/c++的if(xxoo){ooxx},小括号或者花括号两边的空格,你加,或者不加,编译器就在那里,不error不warning.那么,究竟是什么,让[左右的空格和]左边的空格不能省略呢?我们whereis [发现,[竟然是linux的一条命令
whereis [
[: /usr/bin/[
这就很好解释了,既然[是一条命令,为了消除语法的二义性,空格看来是不能省略的了.
关于[命令,基本和test是一直的设置系统的$?值,当[]中的值为true时#?被设置成0,否则为1;值得注意的是[ ];echo $?得到的结果是1;说明[在什么都不做的情况下的返回值是false.而[ null ];echo $?得到的是0.这种关系就和集合论里面的{}是空集,而{{}}显然不是空集是一样的道理.
更多阅读:
http://learn.akae.cn/media/ch31s05.html
http://www.cnblogs.com/roovent/archive/2010/12/11/1903503.html
- shell中if语句后面的[和]的左右空格
- if语句后面的分号
- 关于Perl中while和if后面的语句段执行过程的区别
- shell的if语句
- shell的if语句
- shell 中 if语句的语法错误
- shell中if语句的使用要点!
- shell 中if 语句的使用
- shell脚本中if语句的用法
- vncserver -kill后面冒号左右空格的影响
- shell 的If语句解析
- Shell if 语句的参数
- shell if 语句的用法
- shell的if else 语句
- mysql中char和varchar的 左右空格区别
- shell中插入expect脚本的执行,注意EOF后面的空格
- C语言中,if语句后面加return 的用法的疑问
- shell中 source命令即点空格后面再跟可执行文件的说明
- WordPress初级教程-18: 向新手推荐的WordPress插件
- 对min(a,b)这个宏的讨论(转)
- Floyd-Warshall算法及其应用
- c#版本标准数独Form1.cs文件
- JNI调用
- shell中if语句后面的[和]的左右空格
- TIB工作室自动化测试实战公开课【深圳公开课4月、5月】
- 数独算法
- mysql 主从备忘
- sourceinsight 打开工程出现“内存不能被written”的错误以如何更改sourceinsight默认工程设置
- 第一个JSP
- 如何增加ubuntu dvd 作为本地源
- 模板模式(Fmplate)
- INNO setup安装卸载钱判断进程中是否在运行总结