我正在尝试使用搜索所有这些来取消设置功能,然后循环以取消设置它们,但没有运气
非循环方式有效(创建和取消设置 bar_ 的示例)
function bar_ { echo "bar"; }
function_name="bar_"
echo -n "before unset found function: --> "
declare -F $function_name || echo "<not found>"
unset -f $function_name
echo -n "after unset found function: --> "
declare -F $function_name || echo "<not found>"
echo ""
但是,当在循环中取消设置时,它无法自行删除
function foo_ { echo "bar"; }
declare -F | cut -d" " -f3 | grep foo_ | while read function_name
do
echo -n "before under found function: --> "
declare -F $function_name || echo "<not found>"
unset -f ${function_name}
done
echo -n "after unset found function: --> "
declare -F foo_ || echo "<not found>"
echo ""
这是一些范围问题吗?我尝试将 unset 语句包装在 eval 中无效。