在(=)号后分配带有空格的变量?

在Bash中,使用来给变量赋值是T=content在等号之前或之后没有空格。

尽管如此,我还是在shell脚本PWD= /bin/pwd 中看到了以下内容,该脚本在等号的右侧包含一个空格。

它有空间的目的是什么?


千巷猫影
浏览 601回答 3
3回答

慕娘9325324

在此示例中PWD= /bin/pwd,PWD在执行命令之前,将变量设置为空字符串/bin/pwd。更改仅对该行生效。这对于在运行命令时临时更改变量而不影响原始值很有用。另一个示例是使用read,以设置不同的内容IFS:IFS=, read a b c <<<"comma,separated,list"这将设置字段分隔符为逗号,这样a,b和c被正确读取。在此行之后,IFS返回到默认值,因此脚本的其余部分不受影响。也许在某些系统上,命令的输出pwd受变量的值影响PWD,因此这样做可以防止因PWD在其他地方被覆盖而导致的问题。

至尊宝的传说

PWD= pwd此语法PWD在pwd命令持续时间内将空值分配给变量。PWD=ickecho "$PWD"这分配PWD了脚本的其余部分。PWD=ick pwdecho "$PWD"这PWD仅在pwd命令期间分配;的echo将回声这在效果之前和之后的值pwd调用。PWD=这只是将空值分配给PWD。从病理上来说PWD = ick尝试PWD使用参数运行命令,=并且ick
打开App,查看更多内容
随时随地看视频慕课网APP