在 ksh93 中,这个 barfs:
source foo.ksh
foo die
当 foo.ksh 只包含:
foo() {
echo Foo!
if [[ "$1" = "die" ]]; then
unset -f foo
fi
}
在 bash 中,它有效。如何在 ksh 中取消设置函数?
同样适用于ksh
。考虑foo.ksh
是:
foo()
{
echo "Bar"
if [ "$1" = "die" ]
then
unset -f foo
fi
}
考虑main.ksh
是:
source foo.ksh
foo die
foo # you haven't checked if the function is unset or not
给你 :
bar --> first call
main.ksh[10]: foo: not found [No such file or directory] --> second call
检查它 [ 这里 ]。