여기에 디버깅하고 싶은 간단한 함수가 있습니다. 그러나 활성화해도 원하는 기능을 디버깅할 수 없습니다 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()
함수는 스크립트 끝에서 호출되지 않습니다. 사용자 오류입니다.