2011-12-31 3 views
8

변경된 프롬프트로 bash 서브 프로세스를 시작하는 방법. env를 사용하면 작동하지 않습니다.변경된 프롬프트로 bash 프로세스 시작 PS1

env PS1="change >" bash --login 

이 작동하지 않습니다. 결과는 프로세스가 시작된 후 수출을 사용하는 것과 동일해야합니다 :

$ export PS1="change >" 
change > 

~/.bashrc는 평소와 같이 평가되어야한다.

답변

7

또 다른 해결책은 다음과 같습니다

bash --rcfile <(cat ~/.bashrc; echo 'PS1="change > "') 

이 실행하고 startupfile 사용자의 "확장"버전으로 별칭과 협력을 유지합니다.

5

정상적인 동작입니다 : --login으로, bash는 초기화 파일을 읽고 이것들은 PS1을 다시 정의합니다.

(source .bashrc; env PS1="change >" bash --norc) 

이 나를 위해 작동합니다 :

[email protected] ~ $ grep FOO ~/.bashrc 
export FOO=bar 
[email protected] ~ $ (source ~/.bashrc; env PS1="change> " bash --norc) 
change> echo $FOO 
bar 

을하지만 .bashrc에이 PS1 재정의 모든 파일을 소스하지 않기 때문에 그것은 단지 작동

당신은 시도 할 수 있습니다.

+0

작은 글자에 추가해야합니다. .bashrc를 실행해야합니다. –

+0

붙여 넣을 수 있습니까? 그것이 PS1을 재정의하는 파일을 원한다면, 당신은 꽤 운명을 ... – fge

+0

편집 된 솔루션보기 – fge

2

시도 bash --rcfile <(echo "export PS1='somethingelse>'"). 이것은 프로세스 대체를 사용하여 PS1 설정을 포함하는 "파일"을 작성하고이를 bash에 제공합니다. 현재 쉘이 대체 (bash 및 zsh do)를 지원해야합니다.

+0

감사합니다. 이것은 나를위한 표이었다. .bashrc, .profile 및 기타 방해를받은 스크립트에서 여러 가지가 있습니다. – CSkau