[英]Variable assignment convention in shell scripts
在 bash 脚本中, =
号的两边似乎都不允许有空格。 例如:
# bad
a= "ok"
# bad
a ="ok"
# bad
a = "ok"
# good
a="ok"
这在所有shell
种语言中都是一样的,还是特定于 bash 的? 出于好奇,为什么赋值运算符旁边不允许有空格?
对于特定的 shell,您需要查找 shell 的文档。对于bash
,要求该形式中没有空格(请注意=
的两边都没有空格):
变量可以通过
name=[value]
形式的语句赋值。
出现这种情况的原因之一是您可以使用命令时态赋值,其中变量仅在命令执行期间设置:
pax:~> x=314159 ; echo $x
314159
pax:~> x=42 bash -c 'echo $x'
42
pax:~> echo $x
314159
在作业中留有空格会使弄清楚作业在哪里结束以及命令从哪里开始变得有点困难。 例如:
x= echo echo hello
这应该将x
设置为echo
然后运行echo hello
还是应该将x
设置为""
然后运行echo echo hello
?
如果你想让你的作业很好地用空格格式化,你可以使用((...))
算术评估:
pax:~> (( val = 117 / 3 )) ; echo $val
39
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.