Запитання з тегом «trap»

3
“Пастка… ІНТЕРМІН-ВИХІД” дійсно потрібна?
Багато прикладів для trapвикористання trap ... INT TERM EXITв задачах очищення. Але чи справді потрібно перерахувати всі три ознаки? Посібник говорить: Якщо SIGNAL_SPEC є EXIT (0) ARG виконується при виході з оболонки. що, на мою думку, застосовується, чи нормально завершено сценарій, чи завершено, оскільки він отримав SIGINTабо SIGTERM. Експеримент також …
63 bash  shell  signals  trap 


6
Пастка, ERR та повторення рядка помилки
Я намагаюся створити деякі повідомлення про помилки за допомогою Trap для виклику функції щодо всіх помилок: Trap "_func" ERR Чи можливо отримати, з якої лінії був відправлений сигнал ERR? Шкаралупа баш. Якщо я це роблю, я можу прочитати та повідомити, яка команда була використана, і ввійти / виконати деякі дії. …

2
Правильна поведінка пасток EXIT та ERR при використанні `set -eu`
Я спостерігаю якусь дивну поведінку під час використання set -e( errexit), set -u( nounset) поряд із пастками ERR та EXIT. Вони здаються спорідненими, тому поставити їх в одне питання здається розумним. 1) set -uне викликає помилок ERR Код: #!/bin/bash trap 'echo "ERR (rc: $?)"' ERR set -u echo ${UNSET_VAR} Очікується: …

1
зачекайте, що bash-ugrain спалює процесор на 100 відсотків
Зустрічається щонайменше у GNU bash версії 4.3.42 x86_64 && GNU bash версії 4.3.11 x86_64 Я використовую sleep & wait $!замість простого sleepдля отримання перериваючого sleepсигналу (як SIGUSR1 ). Але здається, що waitвбудований у баштик поводиться дивним чином, коли ви виконуєте наступне. Термінал 1: cat <( trap 'echo SIGUSR1' SIGUSR1; echo …

3
Чи пастка успадковується підзаголовком?
Я спробував такий сценарій: #!/bin/bash trap 'echo "touching a file" && touch $FILE' EXIT foo1(){ echo "foo1" } foo(){ echo "foo" export FILE=${FILE:-/tmp/file1} } (foo1) foo Вихід для вищевказаного сценарію був: [root@usr1 my_tests]# ./test.sh foo1 foo touching a file Однак я очікував, що пастка буде викликана і при виході з …
14 shell  trap  subshell 

4
Зберігати коди виходу при захопленні SIGINT та подібних?
Якщо я використовую, trapяк описано, наприклад, на http://linuxcommand.org/wss0160.php#trap, щоб увімкнути ctrl-c (або подібне) та очищення перед виходом, тоді я змінюю код повернення, який повертається. Тепер це, мабуть, не матиме значення в реальному світі (наприклад, через те, що коди виходу не є портативними, і, крім того, не завжди однозначним, як обговорювалося …

2
Як запустити помилку за допомогою команди Trap
Я використовую Ubuntu 12.04.2. Я намагаюся використовувати команду "пастка" для зйомки аномальних або помилок у моєму скрипті оболонки, але я також намагаюся вручну запустити вихід "Помилка". Я спробував вихід 1, але він не спричинить сигнал "Помилка". #!/bin/bash func() { exit 1 } trap "echo hi" INT TERM ERR func Не …

3
Як налаштувати пастку у функціях bash?
Я можу налаштувати trapв bash-сценарії, але не bash-функції. Наприклад, sourceкод нижче та запустіть f, тепер спробуйте Ctrl+ C, він не потрапив у пастку! Як налаштувати trapв bash функції? 4 trap ctrl_c INT 5 6 ctrl_c () { 7 echo "** Trapped CTRL-C" 8 } 9 10 11 f () { …
13 bash  trap 

1
Чому я отримую повідомлення про помилку при спробі захоплення сигналу SIGINT?
Я запускаю скрипт нижче, щоб автоматично завантажувати файли з сервера за допомогою lftp. Це працює за винятком того, що коли він працює, я отримую повідомлення про помилку trap: SIGINT: bad trap Якщо я заміню SIGINT і SIGTERM на INT і TERM, то він спрацьовує, але я не знаю, чи досяг …
12 shell  trap 

6
Мовчки почати завдання у фоновому режимі
Я знаю, що ви можете використовувати це для запуску процесу у фоновому режимі, не отримуючи повідомлення, коли процес виводиться на задній план і коли це робиться так: (команда &) &> / dev / null Однак це знімає можливість пастки, коли процес закінчується ( trap child_done CHLD). Як я можу мати …
12 process  zsh  trap 

3
Що таке сигнал 0 у команді пастки?
Я слідую за цим посібником про те, як налаштувати безвірну SSH-аутентифікацію за допомогою ssh-агента. Щоб запустити ssh-агент, автор рекомендує такий код у .bash_profile: SSHAGENT=/usr/bin/ssh-agent SSHAGENTARGS="-s" if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then eval `$SSHAGENT $SSHAGENTARGS` trap "kill $SSH_AGENT_PID" 0 fi Я не розумію, чому це сигнал захоплення 0. …
12 bash  signals  trap 

1
Обробка пасток та неявні підзаголовки в скриптах оболонки
Скажімо, у вас є сценарій оболонки, який запускає якийсь код очищення через EXITпастку, як-от так: #!/bin/bash mytrap () { echo "It's a trap!" >&2 } trap mytrap exit echo I am at the end of the script. Як очікується, це буде роздруковано, It's a trap!коли сценарій закінчується: $ sh myscript …
12 shell  trap 

3
Пастка "Ctrl + c" для скрипта bash, але не для процесу, відкритого в цьому сценарії
Я намагався мати інтерактивну програму в баш-скрипті: my_program І я хотів би мати можливість закрити це знаком "Ctrl + c". Але коли я це роблю, мій сценарій також закривається. Я знаю про. trap '' 2 my_program trap 2 Але в цьому випадку я просто не можу закрити my_programCtrl + c. …
11 bash  trap 

2
Як я можу захопити програму, яка повертає 139 (помилка сегментації) у bash?
У мене є скрипт bash, який тестує деякі програми, і одна з програм повертається, Segmentation faultтому я спробував додати пастку в голову мого сценарію: trap "echo 'segfault occured!'" SIGSEGV Однак це нічого не зробило. я використав echo $? відразу після програми, яка виробляє segfault, і я отримую 139 як вихід. …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.