小编典典

为什么有时元字符周围需要空格?

all

几个月前,我在手臂上纹了一个叉形炸弹,我跳过了空格,因为我觉得没有它们看起来更好看。但令我沮丧的是,
有时 (并非总是)当我在 shell 中运行它时,它不会启动一个 fork 炸弹,但它只会给出一个语法错误。

bash: syntax error near unexpected token `{:'

昨天,当我尝试在朋友的Bash
shell中运行它时发生了这种情况,然后我添加了空格,它突然起作用了,:(){ :|:& };:而不是:(){:|:&};:

空格是否重要?我在手臂上纹了语法错误吗?!

它似乎总是在zsh中工作,但在 Bash 中却不行。


阅读 93

收藏
2022-03-09

共1个答案

小编典典

BASH 中有一个分隔标记的字符列表。这些字符称为 元字符 ,它们是|, &, ;, (, ), <, >, 空格
制表符 。另一方面,花括号 ({}) 只是组成单词的普通字符。

省略之前的第二个空格}就可以了,因为&它是一个元字符。因此,你的纹身应该至少有一个空格字符。

:(){ :|:&};:
2022-03-09