설정을 해제할 모든 맞춤 변수와 함수를 찾는 방법은 무엇입니까?

설정을 해제할 모든 맞춤 변수와 함수를 찾는 방법은 무엇입니까?

Bash 쉘 프로세스에는 여기저기에 몇 가지 변수와 함수가 정의되어 있습니다. 그래서 추적하기가 어렵습니다. 설정을 해제할 모든 맞춤 변수와 함수를 찾는 방법은 무엇입니까? 감사해요.

답변1

생성한 변수와 함수를 추적하려고 하지 마세요. 대신 서브셸에서 코드를 실행하세요. 서브쉘이 완료되면 서브쉘에 정의된 모든 변수와 함수가 사라집니다.

Bash에서 명령을 서브쉘에 명시적으로 넣는 한 가지 방법은 그것을 parens (...): 안에 넣는 것입니다. 예를 들어 서브셸에 두 개의 변수와 함수를 정의하고 함수를 실행해 보겠습니다.

$ ( a=1; b=2; fn() { echo "a=$a b=$b"; }; fn )
a=1 b=2

서브셸이 완료되면 모든 내용이 삭제됩니다.

$ fn
bash: fn: command not found

답변2

빠르고 더러운: "빈" 환경을 현재 환경과 비교

env -i bash set > baseline
set > now
diff baseline now

답변3

compgen -v를 사용하여 bash에 정의된 모든 변수를 나열하고 compgen -A 함수를 사용하여 모든 함수를 나열할 수 있습니다.

관련 정보