我应该使用 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` |
+-------------+--------------------------------------------+
当列出系统上所有已定义的函数时,每个函数的名称都带有前缀 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` |
+-------------+--------------------------------------------+