【发布时间】:2020-01-28 05:36:11
【问题描述】:
我正在使用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 更改为 dir 或 ef 或 anything_else,我不会收到错误消息。
我假设df 在某种程度上是一个保留字,但是当我检查这个list of reserved words in bash 时我找不到它。 (无论如何,我认为它不应该成为一个!)
那么,任何人都可以对此有所了解吗?为什么 bash 禁止我定义一个名为 df 的 shell 函数?
【问题讨论】:
-
@JoshLee:这是个问题,但在解析达到那个点之前,似乎还有其他问题。
-
也就是说,我无法重现报告的问题。
!会导致问题,但命名函数df似乎可以正常工作。 -
诊断:
type -a df
标签: bash function reserved-words bash4