URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 1494
[ Назад ]

Исходное сообщение
"Подсчёт нажатий СTRL+C"

Отправлено Storm , 18-Мрт-03 08:39 
Привет All! пишу на sh. Я знаю что trap'ом можно лочить прерывания, но как с помощью trapa их подсчитать? т.е задача такая по второму CTRL+C надо выводить "/bin/ls -l /". Помогите плиз. очь надо. лаба у меня такая.
Всем заранее спасибо

Содержание

Сообщения в этом обсуждении
"Подсчёт нажатий СTRL+C"
Отправлено Laskaviy , 18-Мрт-03 17:05 
>Привет All! пишу на sh. Я знаю что trap'ом можно лочить прерывания,
>но как с помощью trapa их подсчитать? т.е задача такая по
>второму CTRL+C надо выводить "/bin/ls -l /". Помогите плиз. очь надо.
>лаба у меня такая.
>Всем заранее спасибо

Трапом в шеле ты ловишь ПРЕРЫВАНИЯ ???? Круто чувак .... второй Гарри Поттер :)


"Подсчёт нажатий СTRL+C"
Отправлено SergeiZz , 19-Мрт-03 14:00 
>Трапом в шеле ты ловишь ПРЕРЫВАНИЯ ???? Круто чувак .... второй Гарри
>Поттер :)
Это ещё что! Я тут ляпнул, то Java в 91-м разрабатывалась как решение
для "мобильной связи". Из какого места такие слова в голову приходят?... :)  


"Подсчёт нажатий СTRL+C"
Отправлено sas , 20-Мрт-03 00:58 
>Привет All! пишу на sh. Я знаю что trap'ом можно лочить прерывания,
>но как с помощью trapa их подсчитать? т.е задача такая по
>второму CTRL+C надо выводить "/bin/ls -l /". Помогите плиз. очь надо.
>лаба у меня такая.
>Всем заранее спасибо


Вообще то проще некуда:

#!/bin/bash

COUNTER=0
CMD="ls -l /"

my_ls()
{
    if [ $COUNTER -eq 1 ]; then
        $CMD
        echo -e "\n\n\tSecond Time Ctrl-C!!! Exiting...\n\n"
        exit 0
    fi

    COUNTER=$(($COUNTER+1))
}

trap "my_ls" INT

while [ 1 -eq 1 ]; do
   continue
done

Если Вы собираетесь быть программистом такие вопросы надо бы решать без
подсказок.

Успехов
--- sas