Linux команди

Команда Bash trap

Команда Bash trap
Вградена команда bash, която се използва за изпълнение на команда, когато черупката получи някакъв сигнал, се нарича „капан“. Когато се случи някакво събитие, тогава bash изпраща известието чрез всеки сигнал. Много сигнали са налични в bash. Най-често срещаният сигнал на bash е SIGINT (Прекъсване на сигнала). Когато потребителят натисне CTRL + C, за да прекъсне всеки процес от терминала, този сигнал се изпраща, за да уведоми системата.  Как можете да използвате командата trap за обработка на различни видове сигнали е обяснено в този урок.

Синтаксис:

trap [-lp] [[arg] signal_spec…]

или

капан [действие] [сигнал]
Ключ Описание
Използва се за показване на списъка с всички имена на сигнали със съответния номер.
-стр Използва се за показване на сигнална команда или команда за улавяне за signal_spec.
аргумент Използва се за изпълнение на команда, когато черупката получи сигнал (и).
сигнал_спец Той съдържа име на сигнал или номер на сигнал.

Trap команда без опция и аргумент

Изпълнете следната команда от терминала, за да покажете списъка с всички команди, свързани с всяко условие. Ако някоя команда "trap" не е зададена преди това, следващата команда няма да покаже никаква информация.

$ капан

Команда за улавяне с опция -l

Изпълнете следната команда от терминала, за да покажете списъка с всички имена на сигнали с номер.

$ капан -l

Изходът на горната команда ще покаже списъка с 64 сигнала с цифри.

Задайте команда за улавяне за ERR и EXIT

Следващата първа команда ще зададе команда "trap", която ще се изпълни, когато възникне грешка на черупката или излезе от нея. Тази команда "trap" ще премахне темп.текст файл от текущото местоположение. Командата 'ls' се използва за проверка на темп.текст файл съществува или не е в текущото местоположение. И накрая изход команда се използва за затваряне на терминала и изпълнение на командата 'trap', която е зададена преди.

$ капан 'rm темп.txt 'грешка изход
$ ls
$ изход

След изпълнението на горните команди ще се появи следният изход.

Сега, ако потребителят отвори терминала отново след излизане и изпълни командата 'ls' след това темп.текст файлът няма да съществува.

Задайте команда "trap" с номер на сигнала SIGUP, SIGQUIT и SIGKILL

Номерът на сигнала от ПОДПИСАНЕ, ПРЕПРАЩАНЕ и SIGKILL са 1, 3 и 9. Следващата първа команда ще зададе капан за тези три сигнала. Когато някой от тези сигнали се появи, съобщението „Командата за улавяне се изпълнява”Ще отпечата.  Изпълнете следната команда от терминала.

$ trap 'echo Изпълнена команда за улавяне' 1 3 9

Когато потребителят натисне Ctrl + C за генериране на присвояване на сигнал чрез команда "trap" след това "ехо" command of trap команда ще се изпълни и ще се появи следният изход.

Задайте команда "trap" за SIGTERM в скрипт

SIGTERM сигнал се използва за незабавно прекратяване на процеса чрез освобождаване на неговите ресурси. Създайте bash файл с име 'трапскрипт.ш'със следния код. В скрипта е деклариран безкраен цикъл for, който непрекъснато ще отпечатва текст до SIGTERM възниква сигнал. Потребителят трябва да натисне Ctrl + Z да генерира SIGTERM сигнал.

трапскрипт.ш

#!/ bin / bash
 
# Задайте капан за сигнали SIGINT и SIGTERM
trap "echo Програмата се прекратява."СИГТЕРМ ЗНАЧ
 
# Показване на съобщение за генериране на SIGTERM
echo "Натиснете Ctrl + Z, за да спрете процеса"
 
# Инициализиране на броячна променлива, т.е
i = 1
 
#declare безкраен за цикъл
за(;;)
направете
# Отпечатайте съобщение с брояч i
ехо „стартиране на цикъла за $ i пъти“
# Увеличаване на брояча с един
((i ++))
Свършен

Стартирайте скрипта, като изпълните следната команда и натиснете Ctrl + Z, за да генерирате SIGTERM сигнал. Ще се появи следният подобен изход.

$ bash trapscript.ш

Задайте команда „trap“, за да стартирате функция въз основа на определен сигнал

Можете да свържете команда "trap" с всяка дефинирана от потребителя функция. Създайте bash с име trapfunc.ш и добавете следния скрипт. Тук е наречена персонализирана функция func () се обявява за отпечатване на просто съобщение, „Задачата изпълнена“. Дефиниран е цикъл за включване за четене и отпечатване на списъка с всички файлове и папки на текущата работна директория. "капан" командата, която е дефинирана в началото на списъка, ще извика функцията, func () когато програмата приключи.

trapfunc.ш

#!/ bin / bash
# Извикайте функцията func при излизане
trap func изход
# Декларирайте функцията
функция func ()
 
ехо "Задачата е изпълнена"

# Прочетете файловете и папките от текущия списък с директории, използвайки цикъл for
за аз в *
направете
ехо "$ i"
Свършен

Стартирайте скрипта от терминала.

Стартирайте скрипта.

$ bash trapfunc.ш

Следващият изход показва това, „Задачата изпълнена”Текстът се отпечатва след отпечатване на всички файлове и папки от текущата директория.

Заключение

Този урок показва как командата "trap" може да се използва в Linux за извършване на автоматизирана задача въз основа на генериран сигнал. Той помага на потребителите да проследяват различни видове грешки и да предприемат правилни действия, които могат да бъдат назначени преди с помощта на тази команда. Много програми или скриптове разпределят някои конкретни ресурси, когато се изпълняват в системата. Ако някоя работеща програма или скрипт излезе или прекрати необичайно, тогава използваните ресурси от тази програма се блокират. Командата 'trap' може да се използва за решаване на този проблем. Задачата за почистване на ресурса може да се направи лесно с помощта на тази команда. Надявам се, четецът ще получи ясна представа за използването на тази команда, след като прочете този урок.

Средният бутон на мишката не работи в Windows 10
The среден бутон на мишката ви помага да превъртате дълги уеб страници и екрани с много данни. Ако това спре, добре ще свършите да използвате клавиату...
Как да промените левия и десния бутон на мишката на компютър с Windows 10
Напълно нормално е всички устройства на компютърни мишки да са ергономично проектирани за десничари. Но има налични устройства за мишка, които са спец...
Емулирайте кликванията на мишката, като задържите курсора на мишката с кликаща мишка в Windows 10
Използването на мишка или клавиатура в неправилна поза при прекомерна употреба може да доведе до много здравословни проблеми, включително напрежение, ...