Как убрать ловушку в функции bash?

Когда у меня есть простая функция Bash, как

function useTrap(){
     # should print the signal
     function handle_error() {
         echo "!! useTrap run into trap: ${1}"  
     }

    # http://linuxcommand.org/wss0160.php
    trap handle_error SIGINT

    local anyExample=Hello
    echo "Printing example: $anyExample"
    echo "useTrap finishing"
}

и позвонить useTrap Я получаю этот ожидаемый результат:

# -> Printing example: Hello
# -> useTrap finishing

Но когда я тогда или совсем некоторое время спустя в той же оболочке нажимаюCTRL+C Я вижу:

# -> ^C!! useTrap run into trap:

Так что я предполагаю, что я делаю что-то концептуально неправильно здесь. Должны ли ловушки использоваться в функциях вообще? Можно ли их удалить как часть какой-то очистки, хотя бы в скрипте (someScript.sh), которая использует функцию, которая использует ловушки?

Это дубликат. На всякий случай, если кто-то слишком ленив для повторного нажатия, решение

trap - [signal]

0 ответов

Другие вопросы по тегам