Perguntas com a marcação «trap»

63
"Armadilha ... EXT TERM SAIR" é realmente necessário?

Muitos exemplos para trapuso trap ... INT TERM EXITem tarefas de limpeza. Mas é realmente necessário listar todos os três tipos de sigs? O manual diz: Se um SIGNAL_SPEC for EXIT (0), ARG será executado na saída do shell. que eu acredito que se aplica se o script terminou normalmente ou porque...

30
Trap, ERR e ecoando a linha de erro

Estou tentando criar alguns relatórios de erros usando um trap para chamar uma função em todos os erros: Trap "_func" ERR É possível obter de que linha o sinal ERR foi enviado? O shell é uma festança. Se fizer isso, posso ler e relatar qual comando foi usado e registrar / executar algumas...

14
A armadilha é herdada por um subshell?

Eu tentei um script a seguir: #!/bin/bash trap 'echo "touching a file" && touch $FILE' EXIT foo1(){ echo "foo1" } foo(){ echo "foo" export FILE=${FILE:-/tmp/file1} } (foo1) foo A saída para o script acima foi: [root@usr1 my_tests]# ./test.sh foo1 foo touching a file No entanto, eu...

13
Como configurar o trap nas funções bash?

Eu posso configurar trapem scripts bash, mas não funções bash. Por exemplo, sourceo código abaixo e execute f, agora tente Ctrl+ C, não foi preso! Como configurar trapnas funções do 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...

13
Como disparar um erro usando o comando Trap

Estou usando o Ubuntu 12.04.2. Estou tentando usar o comando "trap" para capturar anormal ou erro no meu script de shell, mas também estou tentando disparar manualmente a saída "Error". Eu tentei a saída 1, mas ele não dispara o sinal de "Erro". #!/bin/bash func() { exit 1 } trap "echo hi"...

12
O que é o sinal 0 em um comando trap?

Estou seguindo este guia sobre como configurar a autenticação SSH sem senha com o ssh-agent. Para iniciar o ssh-agent, o autor recomenda o seguinte código em .bash_profile: SSHAGENT=/usr/bin/ssh-agent SSHAGENTARGS="-s" if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then eval `$SSHAGENT...

12
Iniciar silenciosamente a tarefa em segundo plano

Eu sei que você pode usar isso para iniciar um processo em segundo plano, sem receber a notificação quando o processo é colocado em segundo plano e quando é feito da seguinte maneira: (comando &) &> / dev / null No entanto, isso remove a opção de interceptar quando o processo termina...

8
Subshell padrão vs subshell de substituição de comando

Por favor, explique estas saídas de interceptação: $ line(){ echo -------------; echo $BASHPID; } $ trap 'echo bye' EXIT; trap -p; line; (trap -p; line); echo "$(trap -p; line)" trap -- 'echo bye' EXIT trap -- '' SIGTSTP trap -- '' SIGTTIN trap -- '' SIGTTOU ------------- 6176 trap -- ''...