来源:自学PHP网 时间:2015-04-17 17:13 作者: 阅读:次
[导读] 先来看一下 空 26684;在bash中的使用规则:1 赋 20540;运算时=号两边不能使用空 26684;。2 命令与选项之间需要空 26684;。3 管道两边的空 26684;可有可无。再来看一下各种由于空 26684;导致错误...
先来看一下 空格在bash中的使用规则: 1.赋值运算时=号两边不能使用空格。 2.命令与选项之间需要空格。 3.管道两边的空格可有可无。 再来看一下各种由于空格导致错误的原因: 1)赋值运算时=号左边有空格 var ="abc"产生的错误信息为: var: command not found 这是由于bash在解释该条命令时,var会作为一个命令去在系统的PATH中去寻找。一旦无法找到var这个命令就回提示“找不到var这个命令”,那么后面的语句自然也无法执行。 2)赋值运算时=号右边有空格 var= "abc" 产生的错误信息为: abc: command not found 这是因为在bash中有这么一条执行命令的方式:var=string command命令command将得到变量var的值,那么“abc"则会作为一个command被bash解释,那么返回的信息当然是“找不到abc这个命令”。 3)赋值运算时=号左右都有空格。 这种情况与第一种情况相同。 4)命令之间没有使用空格。 常见的有如下几种情况: 【if与[之间没有空格】 if[ -n "abc" ];then echo ok;fi 错误原因:很多人认为[ ]在bash中只是一个判断布尔值的符号。其实[ ]在bash中的作用等同于test,它当然是一个命令。 那么if 是一个独立的命令,[ ]同样也是一个独立的命令。两个命令直接当然要有空格,否则像 if[这样的情况,bash只能理解为是一个整体,因而报错。 【[xxx]其中的参数的两端没有空格】 if ["abc" = "abc" ];then echo ok;fi 错误原因:同样的 bash根本无法理解["abc"是个什么东西。要牢记 [ ]不仅仅是一个符号,而是一个命令。 【[ "abc"="cba" ]其中的参数之间没有空格】 if [ "abc"="abc" ];then echo ok;fi 错误原因: =两边有空格,是表达式,判断=两边的值是否相等,返回一个bool值. =两边缺少空格,bash则会将"abc"="cba"看做一个整体,它始终返回为真。 至于管道,虽然|两边空格可有可无,但为了美观,一般还是保留两边的空格的。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com