셸 스 크 립 트 를 내 장 된 변수 로 디 버 깅 하 는 방법

951 단어
일반적인 셸 스 크 립 트 의 디 버 깅 은 기본적으로 echo 로 비교적 큰 스 크 립 트 를 만 났 을 때 비교적 번 거 롭 고 문제 가 생 겼 습 니 다. 어떤 줄 의 코드 에 문제 가 생 겼 는 지 잘 찾 지 못 했 습 니 다.사실 셸 에 내 장 된 일부 변 수 는 이 문 제 를 잘 해결 할 수 있 습 니 다: $LINENO  $FUNCNAME $BASH_LINENO 라 는 변 수 는 스 크 립 트 의 현재 실행 위치 와 실행 중인 함 수 를 기록 합 니 다.구체 적 으로 man 문서 페이지 를 사용 할 수 있 습 니 다.인 스 턴 스 코드: a. sh

   #!/bin/bash 
  
abc() {
echo "wo shi abc()"
echo  "func: $FUNCNAME  ln: $LINENO ln2:${BASH_LINENO[1]} brother: ${FUNCNAME[1]}"
}

b.sh:

   #!/bin/bash 
  
../a.sh
abc
cdf() {
abc
}

실행 결과:
[root@node2 ~]# ./b.sh
[code]wo shi abc()
func: abc  ln: 5 ln2:0 brother: main
wo shi abc()func: abc  ln: 5 ln2:9 brother: cdf
나 는 b. sh 에 cdf 함수 호출 abc 함 수 를 썼 습 니 다. 출력의 차 이 를 보 았 죠? 우 리 는 이 매개 변 수 를 이용 하여 코드 오류 줄 의 위치 와 코드 오류 가 발생 했 을 때 어느 함수 에서 호출 되 었 는 지 등등 을 출력 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기