分页: 1 / 1

为什么赋值时等号两边不能有空格?

发表于 : 2012-04-07 12:43
billcalendar
会提示什么not found....这是什么意思?小白一枚 :em09

Re: 为什么赋值时等号两边不能有空格?

发表于 : 2012-04-07 12:46
cuihao
允许空格会有歧义:

代码: 全选

echo = 10
以上执行echo命令,“=”、“10”是两个参数。

Re: 为什么赋值时等号两边不能有空格?

发表于 : 2012-04-07 19:19
wuhezhong
贴出来,让大家看一下。

Re: 为什么赋值时等号两边不能有空格?

发表于 : 2012-04-08 12:06
drunkfish
书上C-C/V来的:

代码: 全选

 9 # 强烈注意,在赋值的前后一定不要有空格.
10 # 如果有空格会发生什么?
11 
12 #  如果"VARIABLE =value",
13 #              ^
14 #+ 脚本将尝试运行一个"VARIABLE"的命令,带着一个"=value"参数.
15 
16 #  如果"VARIABLE= value",
17 #               ^
18 #+ script tries to run "value" command with
18 #+ 脚本将尝试运行一个"value"的命令,带着
19 #+ the environmental variable "VARIABLE" set to "".
19 #+ 一个被赋成""值的环境变量"VARIABLE".

Re: 为什么赋值时等号两边不能有空格?

发表于 : 2012-04-08 21:35
aerofox
其实真正的原因是,shell 不是你设计的,也不是我设计的,人家就那么设计了,你想用它,就得遵守它的约定。
如果你来设计一个 shell,完全可以让等号两边都允许有空格,而在 2 楼举的那个例子中,在等号前加反斜杠取消等号的特殊含义。但是最人家没有这么。所以,要么使用人家的约定,要么自己来设计一个 shell。