LINUX.ORG.RU

trap in bash


0

0

Приветствую!
Кто может объяснить, почему второе прерывание уже не обрабатывается?

#! /bin/bash
s() {
        trap s 2
        echo =trap=
        sleep 5
}
trap s 2
sleep 5

В идеале, нужно подсчитать количество прерываний SIGINT.

потому что выполнение скрипта заканчивается.

#! /bin/bash
s() {
        trap s 2
        echo =trap=
        sleep 5
}
trap s 2

while true
do
    true # do nothing
done

anonymous
()
Ответ на: комментарий от henturis

> Получается, sleep, что внутри функции, проскальзывает?

я думаю дело происходит так: sleep это не builtin шелла -- это отдельный процесс -- по первому интеррапту он прерывается, и дальше заканчивается (его обработчик -- стандартный, потому что был вызван exec)

> Как тогда время засечь?

в цикле sleep 1

dilmah ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.