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

63
«Ловушка ... INT TERM EXIT» действительно необходимо?

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

30
Trap, ERR и отображение строки ошибки

Я пытаюсь создать несколько отчетов об ошибках, используя Trap для вызова функции по всем ошибкам: Trap "_func" ERR Можно ли узнать, с какой линии был отправлен сигнал ERR? Оболочка Баш. Если я это сделаю, я смогу прочитать и сообщить, какая команда использовалась, и записать / выполнить некоторые...

27
Правильное поведение ловушек 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} Ожидается: вызов...

16
подождите, пока bash-buildin сожжет процессор на 100 процентов

По крайней мере, в GNU bash версии 4.3.42 x86_64 && GNU bash версии 4.3.11 x86_64 Я использую sleep & wait $!вместо простого sleepдля получения прерываемого sleepсигнала (как SIGUSR1 ). Но кажется, что waitbash-buildin ведет себя странным образом, когда вы запускаете следующее. Терминал...

14
Сохранить коды выхода при захвате SIGINT и подобных?

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

14
Ловушка наследуется подоболочкой?

Я попробовал следующий скрипт: #!/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 Однако я ожидал,...

13
Как настроить ловушку в функциях 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 () { 12 for i in `seq 1 100`; do 13...

13
Как вызвать ошибку с помощью команды Trap

Я использую Ubuntu 12.04.2. Я пытаюсь использовать команду «trap», чтобы зафиксировать ненормальное или ошибку в моем сценарии оболочки, но я также пытаюсь вручную вызвать выход «Error». Я попытался выйти 1, но он не вызовет сигнал «Ошибка». #!/bin/bash func() { exit 1 } trap "echo hi" INT TERM ERR...

13
Создание загрузочного образа Debian с помощью debootstrap

Я пытался создать загрузочный образ Debian (jessie / 8.4) в течение последних 2 дней, и, насколько я могу судить, у меня есть правильная процедура, но я не могу получить правильную файловую систему. Я относительно уверен, что я делаю что-то здесь не так, что-то упустил при монтировании или...

12
Что такое сигнал 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`...

12
Тихо запустить задание в фоновом режиме

Я знаю, что вы можете использовать это для запуска процесса в фоновом режиме, не получая уведомления, когда процесс находится в фоновом режиме и когда это делается следующим образом: (команда &) &> / dev / null Однако это удаляет возможность перехватывать, когда процесс завершается (...

12
Почему я получаю сообщение об ошибке при попытке перехвата сигнала SIGINT?

Я запускаю приведенный ниже скрипт для автоматической загрузки файлов с сервера с использованием lftp. Это работает за исключением того, что при запуске я получаю сообщение об ошибке trap: SIGINT: bad trap Если я заменю SIGINT и SIGTERM на INT и TERM, то это сработает, но я не знаю, достигнет ли...

11
Ловушка Ctrl + C для скрипта bash, но не для процесса, открытого в этом скрипте

Я пытался создать интерактивную программу в скрипте bash: my_program И я хочу иметь возможность закрыть его с помощью Ctrl + C. Но когда я это делаю, мой скрипт тоже закрывается. Я знаю о. trap '' 2 my_program trap 2 Но в этом случае я просто не могу закрыть my_programс помощью Ctrl + c. У вас есть...

10
Как я могу перехватить программу, которая возвращает 139 (ошибка сегментации) в bash?

У меня есть скрипт bash, который тестирует некоторые программы, и одна из них возвращается, Segmentation faultпоэтому я попытался добавить ловушку в заголовок моего скрипта: trap "echo 'segfault occured!'" SIGSEGV Это, однако, ничего не сделал. я использовал echo $? сразу после программы, которая...

10
Обработка ловушек и неявные дочерние оболочки в сценариях оболочки

Допустим, у вас есть сценарий оболочки, который выполняет какой-то код очистки через 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
На Ctrl + C убить текущую команду, но продолжить выполнение сценария

У меня есть скрипт bash, в котором я выполняю строку, некоторое время сплю, а затем tail -fмой файл журнала, чтобы убедиться, что виден определенный шаблон, я нажимаю ctrl + c, чтобы выйти из него, tail -fа затем перехожу на следующую строку, пока скрипт bash не завершит выполнение : Вот что я...

10
Предотвращение распространения SIGINT в родительский процесс

Рассматривая сценарий, в котором Родительская программа (может быть программа C ++ или Shell Script) выполняет сценарий оболочки Child, когда мы нажимаем Control + C (или любой другой символ, настроенный как символ INTR) во время выполнения сценария Child Shell Script, SIGINT отправляется всем...