Depurando funções bash [closed]

6

Então, aqui tenho uma função simples que desejo depurar. No entanto, não consigo depurar a função desejada mesmo com set -o functrace ativado. Antes de recorrer a essa pergunta, consegui encontrar uma solução possível que não produzisse os resultados desejados, que está localizada aqui .

Como posso obter o bash para depurar minhas funções?

#!/bin/bash
echo "Hello World"
hello() {
    echo "Hello world"
}

saída:

user@mac11:53:29~/desktop bash -x debug.sh 
+ echo 'Hello World'
Hello World
user@mac11:54:55~/desktop 
    
por Brandon D. 09.06.2013 / 18:02

2 respostas

4

mas essa resposta no link parece funcionar ........

  Kaizen ~/so_test $ cat zhello.sh
  set -x ;
  set -o functrace

  hello()
  {
   name=$1;
   echo "Hello , how are you $name";
 }

 hello "itin" ;

saída é:

 Kaizen ~/so_test $ ./zhello.sh
  + ./zhello.sh                     --  script was run 
 ++ set -o functrace
 ++ hello itin                      -- function was invoked
 ++ name=itin                       -- variable assigned within the function hello 
 ++ echo 'Hello , how are you itin'
 Hello , how are you itin           -- printed the output from the function ...

Estou um pouco curioso, há algo específico que você está procurando?

    
por 09.06.2013 / 18:53
2

A função hello() não foi chamada no final do script. Erro do usuário.

    
por 09.06.2013 / 18:58

Tags