在 Bash 中,使用 T=content
为变量赋值,等号前后没有空格。
尽管我在 shell 脚本 PWD=/bin/pwd
中看到以下等号右侧包含一个空格。
留个空格有什么用?
最佳答案
在例子PWD=/bin/pwd
中,变量PWD
在执行命令/bin/pwd
之前被设置为空字符串>。更改仅对该行生效。
这对于为了运行命令而对变量进行临时更改而不影响原始值很有用。另一个例子是在使用 read
时设置不同的 IFS
:
IFS=, read a b c <<<"comma,separated,list"
这会将字段分隔符设置为逗号,以便正确读取 a
、b
和 c
。在这一行之后,IFS
返回默认值,因此脚本的其余部分不受影响。
也许在某些系统上,命令pwd
的输出受变量PWD
的值影响,所以这样做可以防止PWD<引起的问题
在别处被覆盖。
关于bash - 在(=)符号后用空格分配变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26971987/