실수로 스크립트에서 잘못된 환경을 얻었습니다. "취소", 즉 복원하고 이전 환경을 복원할 수 있는 방법이 있나요?
물론, 분명한 대답은 클린 쉘 세션으로 시작하는 것이지만, 다른 해결책이 있는지 궁금합니다.
업데이트: 저는 단지 일부 변수를 설정하는 스크립트를 언급하고 있었습니다.
답변1
아니요, 스크립트를 얻는 것(또는 스크립트를 "단순히" 실행하는 것)의 영향을 제거하는 일반적인 방법은 없습니다. 이는 파일 삭제 등 되돌릴 수 없는 명령이 있다는 사실에 따른 당연한 결과입니다. 스크립트에 되돌릴 수 없는 명령이 포함된 경우 해당 스크립트를 얻은 결과도 되돌릴 수 없습니다.
답변2
"취소", 즉 복원하고 이전 환경을 복원할 수 있는 방법이 있나요?
아니요, 일반적으로 자동 방법은 없습니다.
하지만 우리는 당신이 무엇을 썼는지 모릅니다 source
. 어쩌면 실행 취소할 만큼 간단할 수도 있습니다(예: 작업을 변경하기만 하면 됩니다).PATH
이전에 알려진 것에서).
답변3
만약 너라면미리 알아두세요이를 수행하려면 source
서브셸에서 명령을 실행하고 서브셸을 종료하여 해당 효과를 복원할 수 있습니다(셸 또는 환경 변수를 설정하도록 범위가 지정되어 있는 경우).
따라서 실행하면:
(source set-variables; run-command-with-variables); run-command-without-variables
...그러면 run-command-with-variables
이러한 변수가 설정되지만 run-command-without-variables
설정되지는 않습니다.
또한 어떤 쉘인지 식별합니다.기능스크립트를 얻기 위해 이러한 함수와 연관된 메타데이터를 검사하여 설정하므로 이론적으로 주어진(매개변수화된) 파일에 정의된 다른 모든 함수를 설정 해제하기 위해 쉘 함수 또는 소스 가능한 스크립트를 작성하는 것이 가능합니다. 그러나 함수가 아닌 변수의 경우 설정을 해제할 수 있는 정보가 저장되어 있지 않습니다(이전 값을 식별하는 것은 훨씬 적습니다).