【发布时间】:2015-03-08 22:14:12
【问题描述】:
如果你有声明全局函数的 foo.sh:
myfunction(){ echo $*;}
declare -fx myfunction
然后你获取它:
. foo.sh
然后你从 bar.sh 调用全局函数:
myfunction $BASH_SOURCE
myfunction a b c
myfunction $BASH_SOURCE
第三次调用产生一个空行,除非 bar.sh 正在被获取。任何想法如何绕过这个问题?
【问题讨论】:
-
你期望什么输出?
-
/bin/bar.sh a b c /bin/bar.sh$BASH_SOURCE 如果不是第一次被函数调用,则返回一个空值,除非正在获取脚本 -
可能与this answer 中讨论的 Bash 错误有关。