【发布时间】:2014-02-06 19:58:20
【问题描述】:
几个月前,我在手臂上纹了一个fork bomb,我跳过了空格,因为我觉得没有它们看起来更好看。但令我沮丧的是,有时(并非总是)当我在 shell 中运行它时,它不会启动 fork 炸弹,而只会给出语法错误。
bash: syntax error near unexpected token `{:'
昨天我尝试在朋友的Bash shell 中运行它时发生了这种情况,然后我添加了空格,它突然起作用了,:(){ :|:& };: 而不是:(){:|:&};:
空格重要吗?我在手臂上纹了语法错误吗?!
它似乎总是在 zsh 中工作,但在 Bash 中却不行。
A related question 没有解释任何关于空格的内容,这确实是我的问题; 为什么 Bash 需要空格才能正确解析它?
【问题讨论】:
-
我发了同样的问题here(纹身部分除外)。
-
另外,冒号 (:) 不能用作函数名(请参阅:pubs.opengroup.org/onlinepubs/9699919799/utilities/…)... FreeBSD 的 /bin/sh 甚至对此给出了错误...跨度>
-
@Carpetsmoker:我不确定这有什么关系。这个问题是关于 Bash 的。
标签: bash shell syntax syntax-error