bash 기능 디버깅 [닫기]

bash 기능 디버깅 [닫기]

여기에 디버깅하고 싶은 간단한 함수가 있습니다. 그러나 활성화해도 원하는 기능을 디버깅할 수 없습니다 set -o functrace. 이 질문을 하기 전에 예상한 결과를 얻지 못한 가능한 솔루션을 찾았습니다.여기.

내 기능을 디버그하기 위해 bash를 얻으려면 어떻게 해야 합니까?

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

산출:

user@mac11:53:29~/desktop bash -x debug.sh 
+ echo 'Hello World'
Hello World
user@mac11:54:55~/desktop 

답변1

하지만 링크의 답변이 작동하는 것 같습니다 ...

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

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

 hello "itin" ;

출력은 다음과 같습니다

 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 ...

조금 궁금해요. 특별히 찾는 게 있나요?

답변2

hello()함수는 스크립트 끝에서 호출되지 않습니다. 사용자 오류입니다.

관련 정보