2012-04-03 2 views
1

스크립트를 사용하여 상위 Bash 쉘의 프롬프트를 변경했습니다. 나는 다음과 같은 시도 :Bash 부모 쉘에서 PS1 프롬프트 변경

PS1="Hello World > " 

이 스크립트가 실행되는 서브 쉘의 프롬프트를 변경하지만 이는 내가 부모 쉘의 프롬프트를 변경 할 때 사용하는 명령. 어떤 아이디어?

+3

. 당신의 예는 당신이 주로 이것을 파악하려고 시도하고 있음을 암시합니다. 그렇다면 지금 완료되었습니다. 해결해야 할 문제가 있다면 아마도 부모님이'PS1 = $ (subshell commands ...) '와 같이 협력 할 수 있습니다. – tripleee

+0

성취하려고하는 것이 아니라 성취하려고하는 것을 정확하게 지정해야합니다 그것. 그런 식으로 우리는 개봉 된 것을 더 잘 이해하고 올바른 해결책을 도울 수 있습니다. – Patrick

+0

명령 프롬프트를 "Hello World>"로 변경하고 싶지만 가능한 경우 영구적으로 사용하지 않으려합니다. – batsta13

답변

2

부모 셸이 협조해야합니다. 유닉스 환경에서의 자식 프로세스는 그것의 협력없이 부모 프로세스에 영향을 줄 수 없다.

eval "$(changePrompt.sh)" 

또는 다른 접근 방식 : 부모 같은 쉘에서 스크립트를 호출 한 후

echo 'PS1="Hello World > "' 

을 그리고 : 소스 스크립트 대신 호출

changePrompt.sh 서브 쉘 스크립트에서이 시도 그것. changePrompt.sh이 같은

PS1="Hello World > " 

전화를 :

source changePrompt.sh 

하거나 : 부모의 협조없이 부모 프로세스를 변경하는 자식 프로세스를위한 방법은 없습니다

. changePrompt.sh 
1

당신이 원하는 것을 가지고 .bash_rc 파일을 편집해야합니다 ... 그냥 똑바로 PS1 = "blah"또는 뭐든 추가하십시오.

.bash_rc 파일 (숨겨진 그래서 "LS -la")

당신이 그것을 편집 한

, 소스를 홈 디렉토리/사용자/홈이든에 있어야하며 (소스를 작동합니다. bash_rc) - 같은 디렉토리라고 가정

.rc 파일을 시도해보십시오. ....이 시스템은 모든 쉘에 대해 (또는 적어도 있어야합니다.) ..... 자세한 정보를 보려면 여기를보십시오. :

http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html --- 모든 C에서 here

+0

스크립트 내에서 상위 쉘의 프롬프트를 변경할 수 있어야합니다. – batsta13

+0

보다 구체적으로 무엇을해야합니까? 부모 껍데기 라니? 루트 쉘? 로그인 한 첫 번째 셸? – Ryan

+0

쉘이 처음 열릴 때 얻을 수있는 터미널 – batsta13

관련 문제