bash中的空格

第一篇

  1. 定义变量时, =号的两边不可以留空格
  2. 条件测试语句 [ 符号的两边都要留空格
  3. 条件测试的内容,如果是字符串比较的话,比较符号两边要留空格
  4. 如果if 和 then写在同一行,那么, then的前面要跟上 ;号;如果 then 换行写,,那么也没问题

第二篇

  1. 等号赋值两边不能有空格
  2. 命令与选项之间需要空格
  3. 管道两边空格可有可无

常见的问题**

赋值时等号两边或者只有左边多了空格

# bash: var1: command not found
var1 = test

# bash: var1: command not found
var1 =test

赋值时左边没有空格,右边有空格

var= test

# # bash: nocmd: command not found
var = nocmd

第二条命令报错,因为shell中有一种执行命令的方式:var=string commandcommand将得到变量var的值。

var=newtest eval echo $var

错误的示范(在echo还没执行时,$var已经被替换成空字符串):

var=newtest echo $var

命令和选项之间必须有空格

[命令,也就是test命令

if [ "abc" = "abc" ]; then echo ‘they are the same'; fi

type -a [

[命令经常用到if判断中,也可以这么写

[ "abc" = "cba" ] || echo ‘they are not the same'

[命令时,你必须给它个尾巴], 用test命令时,就不能加个尾巴。尾巴[命令的最后一个参数, 代表[命令的结束。
[在shell中是个命令,它左右必须有空格,][的最后不可缺少的参数,它两边也需要空格。

你可能感兴趣的:(bash中的空格)