Вопросы с тегом «trap»

3
«Ловушка ... INT TERM EXIT» действительно необходимо?
Много примеров для trapиспользования trap ... INT TERM EXITв задачах очистки. Но действительно ли необходимо перечислять все три сигсипа? В руководстве сказано: Если SIGNAL_SPEC - EXIT (0), ARG выполняется при выходе из оболочки. что, я считаю, применимо независимо от того, закончился ли скрипт нормально или он закончился, потому что получил …
63 bash  shell  signals  trap 


6
Trap, 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} Ожидается: вызов ERR, RC! = 0 Фактически: ERR-ловушка …

1
подождите, пока bash-buildin сожжет процессор на 100 процентов
По крайней мере, в GNU bash версии 4.3.42 x86_64 && GNU bash версии 4.3.11 x86_64 Я использую sleep & wait $!вместо простого sleepдля получения прерываемого sleepсигнала (как SIGUSR1 ). Но кажется, что waitbash-buildin ведет себя странным образом, когда вы запускаете следующее. Терминал 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 Однако я ожидал, что trap-сообщение также будет вызвано при выходе из …
14 shell  trap  subshell 

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

2
Как вызвать ошибку с помощью команды Trap
Я использую Ubuntu 12.04.2. Я пытаюсь использовать команду «trap», чтобы зафиксировать ненормальное или ошибку в моем сценарии оболочки, но я также пытаюсь вручную вызвать выход «Error». Я попытался выйти 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 …
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 в команде trap?
Я следую этому руководству о том, как настроить SSH-аутентификацию без пароля с помощью ssh-agent. Для запуска ssh-agent автор рекомендует следующий код в .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 

3
Ловушка Ctrl + C для скрипта bash, но не для процесса, открытого в этом скрипте
Я пытался создать интерактивную программу в скрипте bash: my_program И я хочу иметь возможность закрыть его с помощью Ctrl + C. Но когда я это делаю, мой скрипт тоже закрывается. Я знаю о. trap '' 2 my_program trap 2 Но в этом случае я просто не могу закрыть my_programс помощью …
11 bash  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 …
10 shell  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.