Bash Ловушка SIGINT несколько раз не работает - PullRequest
1 голос
/ 04 апреля 2020

Я не знаю, что не так, но этот скрипт не работает. Он должен всегда возвращаться в меню каждый раз, когда я нажимаю CTRL + C.

#!/bin/bash

func_info()
{
    clear
    echo "This is info page."
    read -p "Press CTRL+C to back to menu or press enter exit..."
    exit
}

func_menu()
{
    clear
    trap - SIGINT
    echo "This is menu page."
    read -p "Press enter to go to info page..."
    trap func_menu SIGINT
    func_info
}

func_menu

. Он работает для первого CTRL + C, но во второй раз просто не работает.

Я новичок в этом, поэтому, пожалуйста, не судите меня;)

Любая помощь приветствуется :) Спасибо.

РЕДАКТИРОВАТЬ:

На самом деле Я нашел это работает

#!/bin/bash

func_info()
{
    clear
    echo "This is info page."
    read -p "Press CTRL+C to back to menu or press enter exit..."
    exit
}

func_menu()
{
    clear
    echo "This is menu page."
    read -p "Press enter to go to info page..."
    ( trap exit SIGINT; func_info )
    func_menu
}

func_menu

Но это нормально?

...