Bash 프롬프트에서 물결표를 피하는 방법?


12

PS1 변수 내에 물결표가 표시되지 않도록 제거하고 싶습니다.

내 현재 PS1 문자열 :

PS1="\h:\w\n$"

프롬프트는 다음과 같습니다.

lnx-hladky:/tmp/plugtmp
$

$ HOME 디렉토리가 물결표로 표시되는 것을 좋아하지 않습니다. 이것을 피할 수 있습니까?

예를 들어 문제가 발생합니다.

lnx-hladky:~/DOC
$  

설명서에 따르면 :

\w : the current working directory, with $HOME abbreviated with a tilde 
\W: the basename of the current working directory, with $HOME abbreviated with a tilde

$ HOME이 물결표로 축약되는 것을 피할 가능성이 있습니까?

한 가지 방법을 찾았지만 너무 복잡하다고 생각합니다.

PROMPT_COMMAND='echo -ne "\e[4;35m$(date +%T)\e[24m$(whoami)@$(hostname):$(pwd)\e[m\n"'
PS1=$

누구든지 더 나은 솔루션을 제안 할 수 있습니까? 프롬프트를 표시하기 위해 많은 명령을 실행하는 것이 좋지 않다는 느낌이 들었습니다. (날짜, whoami, 호스트 이름, 암호).


예제에서 물결표의 원인은 무엇입니까?
JBallin

답변:


11

bash는 프롬프트에서 확장을 실행합니다. 그냥 탈출해야합니다.

PS1='\h:$(pwd)\n$'

그것은 내 질문에 대답합니다. 나는 그런 가능성이 있다는 것을 몰랐다. 고마워요, 이그나시오!
Jirka

2
@Jirka :`PS1 = '\ h : $ PWD \ n $'도 사용할 수 있습니다.
추후 공지가있을 때까지 일시 중지되었습니다.

1
Jirka의 솔루션은 pwd모든 프롬프트에서 실행 됩니다. Dennis의 솔루션은 환경 변수 PWD를 가져 오는 것이 아니라 훨씬 저렴합니다.
Stéphane Gourichon

2
pwdbash 내장입니다. 주장 ${PWD}보다 "훨씬 저렴"이다는 $(pwd)증거도없이입니다.
Vineet

1
@ anxieux : 큰 따옴표가 아닌 작은 따옴표로 인용해야합니다
weberjn

0

예제에 표시된만큼 많은 명령을 실행할 필요가 없습니다. bash언급 한 대부분의 항목에 대한 바로 가기를 제공합니다.

귀하의 예 :

PROMPT_COMMAND='echo -ne "\e[4;35m$(date +%T)\e[24m$(whoami)@$(hostname):$(pwd)\e[m\n"'
PS1=$

다음과 같이 다시 작성할 수 있습니다.

PS1='\e[4;35m\t\e[24m\u@\h:\w\e[m\n'

여기서 \t시간 (24 시간 형식)을 \u표시하고 현재 사용자 이름을 표시하고, '\ h'는 호스트 이름을 표시합니다. bash매뉴얼 페이지에서 프롬프트에 사용할 수있는 이스케이프 및 나머지 이스케이프에 대해 설명 합니다.

~전체 경로로 확장하더라도 명령을 실행중인 사용자를 모르고 정기적으로 사용자를 전환하는 경우 파일 권한 또는 실행 권한에 문제가 발생할 수 있습니다.


안녕, 내 의도는 \ w를 FULL $ HOME 경로를 포함한 전체 경로로 바꾸는 것이 었습니다. Ignacio 덕분에 이제 PS1 = '\ e [4; 35m \ t \ e [24m \ u @ \ h : $ (pwd) \ e [m \ n $'를 사용하여 문제를 해결했습니다 :-)
Jirka

완벽-나는 \u내가 누군지 알 수 있도록 포함하는 것을 좋아 합니다. 이그나시오의 답변을 잊지 말고 질문 왼쪽의 확인란을 클릭하십시오.
Doug Harris

힌트 주셔서 감사합니다. 이 포럼을 처음 사용합니다. 좋은 곳입니다.
Jirka

\ u @ \ h : $ PWD (콜론 참고) scp에 대한 입력으로 사용할 수 있습니다
weberjn

0

.bash_profile 파일에서 아래 설정을 사용하고 있습니다.

$ export PS1='\e[1;34m\D{%T %d.%m.%Y} \[\033[00;39m\]\u\[\033[00;32m\]@$IP:\[\033[00;33m\]$(pwd)/\n\\$\[\033[00m\] '

21:40:08 14.12.2017 vmware@10.112.202.228:/home/vmware/Downloads/
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.