bash_completion 스크립트가 환경에서 지속되는 이유는 무엇입니까?

bash_completion 스크립트가 환경에서 지속되는 이유는 무엇입니까?

export실수 로 내 콘솔 에뮬레이터(Bash 실행)에 명령을 입력했는데 export -p이제 모든 bash_completion 스크립트가 재부팅 후에도 내 환경에 유지됩니다. 작업을 실행 취소하고 싶지만 몇 시간이 지나도 여전히 실행되지 않습니다. 나는 /etc/bash.bashrc에서 그것들을 찾았지만 그것이 어디서 왔는지 보지 못했고, 어떤 경우에도 export매개 변수가 없으면 왜 그렇게 큰 피해를 입힐 수 있는지 알 수 없습니다.

이것은 Knoppix 아래 루트가 아닌 계정에 있습니다 knoppix. 루트 계정이 있으면 su -그런 문제가 없습니다.

[업데이트: 내가 무슨 말을 하는지 전혀 모르겠습니다. "환경"이란 set함수가 표시되는 Bash 내장 함수의 출력을 의미합니다 . 어쨌든, Makefile에서 특정 값의 생성을 테스트하기 위해 사용하고 env있었는데 갑자기 출력에 이러한 모든 기능이 표시 되어 놀랐습니다. set그런 다음 재부팅한 후 명령줄에서 확인했지만 여전히 표시되었지만 Makefile에서 확인하려고 생각하지 않았습니다(더 이상 표시되지 않고 내보내지지 않았습니다. 따라서 문제가 해결되었습니다. 분명히 항상 내 set출력에 있었지만 ' 실수로 export입력하고 내 출력에서 ​​볼 때까지 이를 알아차리지 못했지만 make setbash의 문서는 동작과 일치하지 않는 것 같습니다. export모든 이름을 내보내는 대신 내보낸 변수 목록을 반환해서는 안 됩니다.)]

답변1

모든 변수를 나열 env하고 unset $VARIABLE이를 사용하여 환경에서 불필요한 변수를 모두 제거하여 문제를 해결할 수 있습니다. 예를 들어 PATH를 설정 해제하면 명령/응용 프로그램을 실행할 수 없으므로 올바른 변수를 설정 해제하도록 주의해야 합니다.

이것이 bash_completion 스크립트의 문제점을 설명하지는 않지만 예상치 못한 export.

관련 정보