为什么我不能在shell中定义一个空函数?

时间:2016-09-03 13:47:25

标签: bash shell

我正在学习bash。我不小心遇到了空函数的语法错误。

#!/bin/bash
# script name : empty_function.sh
function empty_func() {
}

bash empty_function.sh

empty_function.sh: line 3: syntax error near unexpected token `}'
empty_function.sh: line 3: `}'

我想这是因为定义了一个空函数。  我想知道为什么我不能定义一个空函数?

2 个答案:

答案 0 :(得分:10)

bash shell's grammar根本不允许空函数。函数的语法是:

  name () compound-command [redirection]
  function name [()] compound-command [redirection]

在形式的复合命令中:

{ list; }

list不能为空。最接近的是使用null语句或返回:

function empty_func() {
    : 
}

function empty_func() {
    return
}

答案 1 :(得分:5)

请改为尝试:

empty_func() {
  :
}