2012-03-06 5 views
1

나는 내 bash는 프롬프트 (나는 OS X 사자에 사용하여 ITerm 사용) 사용자 정의하고있어,와 같은 시도 : 그냥 편의를 위해배쉬 프롬프트 인식하지 변수

PS1='\n[\u]-> ' 

을하지만, 이후 내 ~/.bash_profile, 내 프롬프트를 다시로드 지금 말한다 :

\n[\u]-> 

아니라 내가 (내 이름 다음에 새로운 라인)에 기대하고있어.

아이디어가 있으십니까?

+1

'chsh'을 시도해보십시오. Mac에서도 작동합니다. – 0xC0000022L

답변

2

셸은 어떻게 호출됩니까? 그것이 sh 또는 다른 방법 일 경우 해석되지 않습니다. 시도해보십시오. echo $0

+1

'echo $ SHELL'은 어떻게됩니까? ;) ... 괜찮아, 알 겠어 ... '$ 0'은 게으른 사람들을위한거야. – 0xC0000022L

+1

이번 주말에는 zsh로 게임을 했었지만 bash 만 사용하고 싶습니다. 그게 내 문제 야. 'echo $ 0'을 실행했을 때'-zsh'를 리턴했습니다. – Connor

+0

@STATUS_ACCESS_DENIED 실제로 테스트를 거쳤고 결과가 다릅니다. '$ 0'은'sh'이고'$ SHELL'은'/ bin/bash'입니다. – Kevin

-1

작은 따옴표를 큰 따옴표로 바꾸어보십시오 (예 : PS1="\n[\u]-> ").

+1

아니요, 변수가 설정되면 문제가되지 않으며 이스케이프는 프롬프트가 작성 될 때까지 해석되지 않습니다. – Kevin

1

프롬프트에 작은 따옴표가 표시되어 있습니까? Bash syntax은 작은 따옴표와 큰 따옴표를 다르게 취급합니다. 셸에서 특수 문자를 확장하려면 큰 따옴표를 사용하십시오.

또한 promptvars을 설정 했습니까?

+0

이 경우에는 실제로는 아닙니다. 고전적인 변수가 아니라 "특수한"변수입니다. 내가 시도 할 때까지 이것도 좋다고 생각했다. – 0xC0000022L

+1

아니요, 변수는 single 또는 double과 동일하게 설정되며 인쇄 될 때까지 해석되지 않습니다. – Kevin

+0

@Kevin 나는 해석이 인쇄 시점에 일어난다는 것을 알고 있습니다. 그러나이 문서 (http://ss64.com/bash/syntax-prompt.html)와 BASH 매뉴얼 페이지에 따르면 프롬프트는 * 따옴표 확장을 통해 진행됩니다. –