网站地图    收藏   

主页 > 系统 > windows >

bash中的空格 - Windows操作系统 - 自学php

来源:自学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

添加评论