それらすべてを検索し、ループして設定を解除しようとしていますが、運が悪かったので、関数の設定を解除しようとしています。
非ループウェイが機能する(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でラップしてみましたが効果はありません。