bash - 在(=)符号后用空格分配变量?

标签 bash shell sh

在 Bash 中,使用 T=content 为变量赋值,等号前后没有空格。

尽管我在 shell 脚本 PWD=/bin/pwd 中看到以下等号右侧包含一个空格。

留个空格有什么用?

最佳答案

在例子PWD=/bin/pwd中,变量PWD在执行命令/bin/pwd之前被设置为空字符串>。更改仅对该行生效。

这对于为了运行命令而对变量进行临时更改而不影响原始值很有用。另一个例子是在使用 read 时设置不同的 IFS:

IFS=, read a b c <<<"comma,separated,list"

这会将字段分隔符设置为逗号,以便正确读取 abc。在这一行之后,IFS 返回默认值,因此脚本的其余部分不受影响。

也许在某些系统上,命令pwd的输出受变量PWD的值影响,所以这样做可以防止PWD<引起的问题 在别处被覆盖。

关于bash - 在(=)符号后用空格分配变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26971987/

相关文章:

linux - 使用节点脚本代替 bash

bash - 文本文件中一行的非重复条目

php - 从外部 bash 设置环境变量

python - 删除分隔符

linux - 在 unix 一行中将 *.foo 更改为 *.bar

linux启动结束时启动script.sh

linux - 如何将 "watch"的输出保存到文件

c# - 从 C# 调用的 Selenium Java 进程在 CCNET 构建服务器上无法正常启动

function - 如何在 Bourne shell 中导出函数?

linux - bash 脚本中的 set -e 是什么意思?