나는 내 bash는 프롬프트 (나는 OS X 사자에 사용하여 ITerm 사용) 사용자 정의하고있어,와 같은 시도 : 그냥 편의를 위해배쉬 프롬프트 인식하지 변수
PS1='\n[\u]-> '
을하지만, 이후 내 ~/.bash_profile
, 내 프롬프트를 다시로드 지금 말한다 :
\n[\u]->
아니라 내가 (내 이름 다음에 새로운 라인)에 기대하고있어.
아이디어가 있으십니까?
나는 내 bash는 프롬프트 (나는 OS X 사자에 사용하여 ITerm 사용) 사용자 정의하고있어,와 같은 시도 : 그냥 편의를 위해배쉬 프롬프트 인식하지 변수
PS1='\n[\u]-> '
을하지만, 이후 내 ~/.bash_profile
, 내 프롬프트를 다시로드 지금 말한다 :
\n[\u]->
아니라 내가 (내 이름 다음에 새로운 라인)에 기대하고있어.
아이디어가 있으십니까?
셸은 어떻게 호출됩니까? 그것이 sh
또는 다른 방법 일 경우 해석되지 않습니다. 시도해보십시오. echo $0
'echo $ SHELL'은 어떻게됩니까? ;) ... 괜찮아, 알 겠어 ... '$ 0'은 게으른 사람들을위한거야. – 0xC0000022L
이번 주말에는 zsh로 게임을 했었지만 bash 만 사용하고 싶습니다. 그게 내 문제 야. 'echo $ 0'을 실행했을 때'-zsh'를 리턴했습니다. – Connor
@STATUS_ACCESS_DENIED 실제로 테스트를 거쳤고 결과가 다릅니다. '$ 0'은'sh'이고'$ SHELL'은'/ bin/bash'입니다. – Kevin
작은 따옴표를 큰 따옴표로 바꾸어보십시오 (예 : PS1="\n[\u]-> "
).
아니요, 변수가 설정되면 문제가되지 않으며 이스케이프는 프롬프트가 작성 될 때까지 해석되지 않습니다. – Kevin
프롬프트에 작은 따옴표가 표시되어 있습니까? Bash syntax은 작은 따옴표와 큰 따옴표를 다르게 취급합니다. 셸에서 특수 문자를 확장하려면 큰 따옴표를 사용하십시오.
또한 promptvars
을 설정 했습니까?
이 경우에는 실제로는 아닙니다. 고전적인 변수가 아니라 "특수한"변수입니다. 내가 시도 할 때까지 이것도 좋다고 생각했다. – 0xC0000022L
아니요, 변수는 single 또는 double과 동일하게 설정되며 인쇄 될 때까지 해석되지 않습니다. – Kevin
@Kevin 나는 해석이 인쇄 시점에 일어난다는 것을 알고 있습니다. 그러나이 문서 (http://ss64.com/bash/syntax-prompt.html)와 BASH 매뉴얼 페이지에 따르면 프롬프트는 * 따옴표 확장을 통해 진행됩니다. –
'chsh'을 시도해보십시오. Mac에서도 작동합니다. – 0xC0000022L