字符串文字后面的一对括号的含义是什么?

字符串文字后面的一对括号的含义是什么?

我不小心在 Bash 终端中输入了以下命令:

exit()

Bash 会一直读取下一行,直到我输入字符串文字,并且 Bash 给出错误“-bash:意外标记附近的语法错误”。

所以我测试了其他一些类似的输入,例如:

foobar ()

Bash 给出了类似的输出。以下是我得到的结果:

~ $ foo ()
> bar
-bash: syntax error near unexpected token `bar'

有人可以解释一下原因吗。我只知道括号用于创建数组或子shell。我不知道这个实际上是做什么的。

答案1

这是定义 shell 函数的语法。请参阅外壳函数的部分bash手册。它始于:

Shell 函数是一种对命令进行分组以便稍后使用组的单个名称执行的方法。它们的执行方式就像“常规”命令一样。当 shell 函数的名称用作简单命令名称时,将执行与该函数名称关联的命令列表。 Shell 函数在当前 shell 上下文中执行;没有创建新的流程来解释它们。

使用以下语法声明函数:

name () compound-command [ redirections ]

它期待您输入复合命令。例如:

$ foo()
> {
> echo 'you said foo'
> }
$ foo
you said foo

相关内容