bash为什么禁止名为`df`的shell函数?>

问题描述 投票:1回答:1

我正在使用GNU bash, version 4.4.12(1)-release (x86_64-pc-linux-gnu)

我的一个启动文件中有以下几行:

df() {
        printf "Hello, world!\n"
}

当获得该文件的源时,出现此错误:

-bash: sh/interactive.sh: line 109: syntax error near unexpected token `('
-bash: sh/interactive.sh: line 109: `df() {'

但是,如果我将功能名称从df更改为direfanything_else,则不会出现错误。

我假设df在某种程度上是保留字,但是当我检查此list of reserved words in bash时,找不到它。 (而且我认为它不应该成为一个!)

所以,有人能对此有所启发吗?为什么bash禁止我定义名为df的shell函数?

我正在使用GNU bash,版本4.4.12(1)-发行版(x86_64-pc-linux-gnu)。我的一个启动文件中包含以下几行:df(){printf“ Hello,world!\ n”}当获取该文件的源代码时,我得到...

bash function reserved-words bash4
1个回答
2
投票

之所以这样,是因为您之前已经为此名称定义了别名。别名是简单的字符串前缀替换,因此会干扰函数定义:

© www.soinside.com 2019 - 2024. All rights reserved.