变量赋值
为variable assignment的语法是:
name=value
请注意,=
标志周围没有空格。
name='value with spaces or special characters'
或与variable expansion双引号:
name="stringA $variable stringB"
如果报价丢失,第二个字的值如果该值有空格或特殊字符,应使用单引号标注部分被解释为一个命令。实际上,这是一种将环境变量传递给命令的方式(见下文)。
如果缺少值,则会创建一个空值的变量。
环境变量
还有另一种语法,允许分配的环境变量的命令:
nameA=valueA nameB=valueB nameC=valueC command arguments
的名称 - 值对与空格字符分隔。
例
LD_PRELOAD=/path/to/my/malloc.so /bin/ls
命令调用/bin/ls
之前LD_PRELOAD
环境变量分配给。
你的命令
因此,你的命令:
projectName= echo $tempPBXProjFilePath
实际上意味着你叫echo
命令与参数expanded从$tempPBXProjFilePath
,并设置projectName
环境变量为空值。
而这个命令:
projectName=echo $tempPBXProjFilePath
套projectName
环境变量echo
字符串,并呼吁从$tempPBXProjFilePath
可变扩展的命令。
注意,如果一个变量没有用双引号括起来,那么它的值中出现的特殊字符将被shell解释。为了防止重新解释特殊字符,您应该使用弱引用:"$variable"
。如果要防止字符串值中的变量扩展,请使用单引号:'some value'
。
谢谢,这真的很有帮助。 – Tepmnthar
伟大的总结,鲁斯兰!我为你的文章添加了更多内容。希望你喜欢。 – codeforester