2014-05-23 1 views
0

말에 대한 이스케이프 시퀀스를 추가 할 수 없습니다 : 문제가내가 동적으로 이스케이프 시퀀스를 포함 할 동적으로 'PS1'

if [ -n $something ]; then 
    user="\u" 
else 
    user="admin" 
fi 
PS1='[email protected]\h$ ' 

를 대신 사용자 이름 채우는, 내 메시지는 다음과 같습니다

\[email protected]$ 

백 슬래시 (user="\\u")를 벗어난 경우에도 여전히 사용자 이름이 인쇄되지 않습니다.

[email protected]$ 
+0

프롬프트가 정확히 보이길 원하십니까? – merlin2011

+0

어떤 버전의 bash를 사용 하시나요? 나는 방금 당신의 예제를 점검했고 예상대로 작동한다 (BASH_VERSION ='bash-3.2.51 (1) -release'). – user3159253

+0

@ merlin2011 나는 나의 마지막 프롬프트처럼 보일 것을 원한다 : andreas @ ubuntu-1 $' – IQAndreas

답변

1

변수를 보간하고 확장하려고 할 때 큰 따옴표를 사용하십시오.

\u을 다루는 대신 다른 옵션을 사용할 수도 있고 해석이 복잡 할 때도 발생할 수 있습니다.

if [ -n $something ]; then 
    user=`whoami` 
else 
    user="admin" 
fi 
PS1="[email protected]\h$ " 
관련 문제