为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

千巷猫影 2019-11-20 10:55:19
在Bash中,使用来给变量赋值是T=content在等号之前或之后没有空格。尽管如此,我还是在shell脚本PWD= /bin/pwd 中看到了以下内容,该脚本在等号的右侧包含一个空格。它有空间的目的是什么?
查看完整描述

3 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

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


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


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

这将设置字段分隔符为逗号,这样a,b和c被正确读取。在此行之后,IFS返回到默认值,因此脚本的其余部分不受影响。


也许在某些系统上,命令的输出pwd受变量的值影响PWD,因此这样做可以防止因PWD在其他地方被覆盖而导致的问题。


查看完整回答
反对 回复 2019-11-20
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

PWD= pwd

此语法PWD在pwd命令持续时间内将空值分配给变量。


PWD=ick

echo "$PWD"

这分配PWD了脚本的其余部分。


PWD=ick pwd

echo "$PWD"

这PWD仅在pwd命令期间分配;的echo将回声这在效果之前和之后的值pwd调用。


PWD=

这只是将空值分配给PWD。


从病理上来说


PWD = ick

尝试PWD使用参数运行命令,=并且ick


查看完整回答
反对 回复 2019-11-20
  • 3 回答
  • 0 关注
  • 599 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信