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

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
billcalendar
帖子: 138
注册时间: 2012-03-17 11:05

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

#1

帖子 billcalendar » 2012-04-07 12:43

会提示什么not found....这是什么意思?小白一枚 :em09
头像
cuihao
帖子: 4793
注册时间: 2008-07-24 11:33
来自: 郑州
联系:

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

#2

帖子 cuihao » 2012-04-07 12:46

允许空格会有歧义:

代码: 全选

echo = 10
以上执行echo命令,“=”、“10”是两个参数。
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
头像
wuhezhong
帖子: 111
注册时间: 2010-04-03 18:10

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

#3

帖子 wuhezhong » 2012-04-07 19:19

贴出来,让大家看一下。
我问佛:为何不给所有女子羞花闭月的容颜?
佛曰:那只是昙花的一现,用来蒙蔽世俗的眼
—————---/´ ¯/)
—————--/—-/
—————-/—-/
———--/´¯/'--'/´¯`•_
———-/'/--/—-/—--/¨¯\
——--('(———- ¯~/'--')
———\————-'—--/ 各类计算机在线书籍下载和在线浏览站点------->ppurl.com ------>首页下方有标签!
———-'\'————_-•´
————\———--(
头像
drunkfish
帖子: 76
注册时间: 2011-04-30 17:17

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

#4

帖子 drunkfish » 2012-04-08 12:06

书上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".
怅怅莫怪少时年 百丈游丝易惹牵
何岁逢春不惆怅 何处逢情不可怜
杜曲梨花杯上雪 灞陵芳草梦中烟
前程两袖黄金泪 公案三生白骨禅
老后思量应不悔 衲衣持钵院门前
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

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

#5

帖子 aerofox » 2012-04-08 21:35

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