
export
실수 로 대신 콘솔 에뮬레이터(Bash 실행)에 명령을 입력했는데 export -p
이제 모든 bash_completion 스크립트가 재부팅 후에도 내 환경에 지속적으로 남아 있습니다. 실행 취소하고 싶지만 몇 시간이 지나도 알 수 없습니다. 나는 /etc/bash.bashrc에서 그것들을 찾았지만 그것을 소싱하는 것이 무엇인지 알지 못하며 어떤 경우에도 export
인수가 없으면 그러한 손상을 입힐 수 있는 방법이나 이유를 여전히 알 수 없습니다.
이는 루트가 아닌 knoppix
계정의 Knoppix 아래에 있습니다. su -
루트 계정에는 그런 문제가 없습니다 .
[업데이트: 제가 무슨 말을 하는지 모르겠습니다. "환경" set
이란 함수가 표시되는 Bash 내장 의 출력을 의미했습니다 . 나는 env
. 어쨌든, 특정 값의 생성을 테스트하기 위해 Makefile을 사용하고 있었는데 set
갑자기 출력에 해당 기능이 모두 표시되어 놀랐습니다. 그런 다음 재부팅한 후 명령줄에서 확인했는데 Makefile에서 확인하려고 생각하지 않고 여전히 표시했습니다(더 이상 표시되지 않고 내보내지지 않습니다. 따라서 문제가 해결되었습니다. 분명히 내 set
출력에 계속 표시 되어 있었습니다. 실수로 입력 export
하고 내 출력에서 볼 때까지는 이를 알아차리지 못했습니다 . 여전히 bash 문서에는 이름이 없는 경우 모든 항목을 내보내는 것이 아니라 내보낸 변수 목록을 반환하는 것으로 되어 있는 make set
동작이 일치하지 않는 것 같습니다 .)export
답변1
모든 변수를 나열 env
하고 사용하여 unset $VARIABLE
환경에서 불필요한 변수를 모두 제거하여 문제를 해결할 수 있습니다. 예를 들어 PATH를 설정 해제하면 어떤 명령/응용 프로그램도 실행할 수 없으므로 올바른 변수를 설정 해제할 때 주의해야 합니다.
이것이 bash_completion 스크립트의 문제점을 설명하지는 않지만 실수로 발생한 export
.