【发布时间】:2021-01-23 12:42:54
【问题描述】:
对于 bash 中的变量赋值,我通常会这样做:
a=1
b=2
c=3
如果它在一行中完成,它将是这样的:
a=1; b=2; c=3
最近我看到了一些类似的代码:
a=1 b=2 c=3
分配由空格分隔,它正在工作。我试图用谷歌搜索这种方法,但无法快速找到教科书的答案。现在我只知道,它有效。
那么,是所有的 shell 都支持这种语法,还是一种标准方法?
【问题讨论】:
-
by all shell"all shell" - 究竟是什么? There are many of them -
或“by other shell (e.g. csh, ksh..)”会是更好的术语。
-
POSIX 明确支持这一点。一个简单的命令之前可以有一个或多个赋值,而“赋值语句”实际上只是一个没有实际命令的简单命令。请参阅shell grammar rules,尤其是规则 7。