我应该使用 declare built-in 定义一个函数吗?

Shall I define a function using declare built-in?

当列出系统上所有已定义的函数时,每个函数的名称都带有前缀 declare -f:

bash4.3 declare -F | head
declare -f __expand_tilde_by_ref
declare -f __get_cword_at_cursor_by_ref
declare -f __git_eread
...

作为概念证明,我尝试将函数定义为:

bash4.3 declare -f 'count() { ls -1 | wc -l; } '
bash4.3 declare -F | grep -w count
bash4.3 count() { ls -1 | wc -l; }
bash4.3 declare -F | grep -w count
declare -f count

在上面的输出中,只有在没有 declare 的情况下定义函数时才能识别的定义。我理解 declare 内置函数不用于函数声明是否正确?

这是不合法的。来自https://wiki.bash-hackers.org/commands/builtin/declare,错误代码table下:

+-------------+--------------------------------------------+
| Exit status | Reason                                     |
+-------------+--------------------------------------------+
| != 0        | Attempting to define a function using `-f` |
+-------------+--------------------------------------------+