bash PS1 변수 내보내기 또는 내보내기 안 함

bash PS1 변수 내보내기 또는 내보내기 안 함

나는 로그인과 대화형 셸, 환경 변수, 셸 기능 등이 다양한 구성 파일과 bashrc 파일에 설정되어야 하거나 설정되어서는 안 되는 이유에 대해 읽는 데 많은 시간을 보냈습니다. 존재하다이 게시물누군가 bash 관련 항목(프롬프트 옵션 등)을 ~/.bashrc에 설정해야 한다고 언급했습니다. 이로 인해 PS1 변수에 대한 의문이 생겼습니다. 내가 본 모든 예에는 비슷한 것이 있습니다 export PS1="". bash에만 의미가 있으므로 실제로 환경으로 내보내야 합니까? ~/.bashrc에 이것을 갖는 것만 으로도 PS1=""원하는 효과를 얻을 수 있지만 뭔가 빠진 것이 있는지 궁금합니다.

답변1

맞습니다. PS1bash의 대화형 인스턴스에서만 의미가 있으므로 설정 ~/.bashrc하고 내보내지 않아야 합니다. PS1이는 다른 쉘에서도 의미가 있지만 신속한 확장이 쉘마다 다르기 때문에 다른 의미를 갖습니다. 실제로 의미는 쉘 옵션(적어도)에 따라 다르기 때문에 bash 인스턴스 간에도 PS1다른 의미를 가질 수 있습니다 promptvars.

PS1환경으로 내보내는 것은 .profile하나의 셸(Bourne 셸)만 사용하고 구성 파일이 없었던 1970년대로의 회귀입니다. 항상 동일한 셸을 사용하고 다르게 구성하지 않으면 오늘도 여전히 작동합니다. 그러나 순전히 스크립팅용으로 설계되지 않은 모든 최신 셸(csh, ksh, bash, zsh 등)은 대화형으로 실행될 때 구성 파일( .cshrc, .kshrc, .bashrc, .zshrc...)을 읽으므로 1970년대 접근 방식은 더 이상 필요하지 않습니다. PS1환경으로 내보내지 않고 쉘별 파일에 기타 쉘별 설정을 지정하면 다른 쉘 구성, 다른 쉘 또는 일반적인 프롬프트를 표시할 수 없는 다른 터미널을 사용할 때 문제가 발생하는 것을 방지할 수 있습니다. 공상. PS1쉘 특정 파일 설정은 항상 작동하지만 설정 .profile및 내보내기는 "간단한" 경우에만 작동하므로 올바른 방법으로 수행하지 않을 이유가 없지만 웹에는 나쁜 튜토리얼이 많이 있으며 심지어 나쁜 튜토리얼도 있습니다. 배포판 기본 할당에서.이것이 인생이다.

관련 정보