변경된 프롬프트로 bash 서브 프로세스를 시작하는 방법. env를 사용하면 작동하지 않습니다.변경된 프롬프트로 bash 프로세스 시작 PS1
env PS1="change >" bash --login
이 작동하지 않습니다. 결과는 프로세스가 시작된 후 수출을 사용하는 것과 동일해야합니다 :
$ export PS1="change >"
change >
~/.bashrc
는 평소와 같이 평가되어야한다.
변경된 프롬프트로 bash 서브 프로세스를 시작하는 방법. env를 사용하면 작동하지 않습니다.변경된 프롬프트로 bash 프로세스 시작 PS1
env PS1="change >" bash --login
이 작동하지 않습니다. 결과는 프로세스가 시작된 후 수출을 사용하는 것과 동일해야합니다 :
$ export PS1="change >"
change >
~/.bashrc
는 평소와 같이 평가되어야한다.
또 다른 해결책은 다음과 같습니다
는bash --rcfile <(cat ~/.bashrc; echo 'PS1="change > "')
이 실행하고 startupfile 사용자의 "확장"버전으로 별칭과 협력을 유지합니다.
정상적인 동작입니다 : --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 재정의 모든 파일을 소스하지 않기 때문에 그것은 단지 작동
당신은 시도 할 수 있습니다.
시도 bash --rcfile <(echo "export PS1='somethingelse>'")
. 이것은 프로세스 대체를 사용하여 PS1 설정을 포함하는 "파일"을 작성하고이를 bash에 제공합니다. 현재 쉘이 대체 (bash 및 zsh do)를 지원해야합니다.
감사합니다. 이것은 나를위한 표이었다. .bashrc, .profile 및 기타 방해를받은 스크립트에서 여러 가지가 있습니다. – CSkau
작은 글자에 추가해야합니다. .bashrc를 실행해야합니다. –
붙여 넣을 수 있습니까? 그것이 PS1을 재정의하는 파일을 원한다면, 당신은 꽤 운명을 ... – fge
편집 된 솔루션보기 – fge