De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 04 de junho de 2013
Para resolver problemas de lógica ou outros problemas em scripts shell, podemos invocar o script com a diretiva "-x" ou "-v":
#!/bin/bash -x
ou
#!/bin/bash -v
ou ainda
#!/bin/bash -xv
Em todos os exemplos acima, o debug irá se dar no código de todo o script, o que muitas vezes, dependendo da complexidade e tamanho do script, pode ser um pouco confuso para interpretar.
Com o comando "set -x" podemos ativar o debugging em seções específicas de nosso código, as partes em que suspeitamos que o erro possa estar alojado.
#!/bin/bash for z in AA BB CC do echo $z done for n in 01 02 03 do set -x touch 201306$n.ad echo "-> Arquivo 201306$n.ad criado com sucesso" set +x done
Durante a execução vemos que o primeiro laço é executado sem alterações, mas a partir do segundo laço, os comandos que são interpretados são precedidos do sinal "+", seguidos do resultado final da execução.
AA BB CC + touch 20130601.ad + echo -> Arquivo 20130601.ad criado com sucesso -> Arquivo 20130601.ad criado com sucesso + set +x + touch 20130602.ad + echo -> Arquivo 20130602.ad criado com sucesso -> Arquivo 20130602.ad criado com sucesso + set +x + touch 20130603.ad + echo -> Arquivo 20130603.ad criado com sucesso -> Arquivo 20130603.ad criado com sucesso + set +x
O trecho que será debugado é delimitado pelos comandos "set -x" e "set +x".
A diretiva "-x" é uma abreviação para xtrace. Os comandos "set -x" e "set -xtrace" são equivalentes.
Tudo que é efetivamente executado é impresso, após terem sido realizadas todas as substituições e expansões.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários