Bash 프롬프트에서 물결표를 피하는 방법? of the current working directory,

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, 호스트 이름, 암호).



답변

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

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


답변

예제에 표시된만큼 많은 명령을 실행할 필요가 없습니다. 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매뉴얼 페이지에서 프롬프트에 사용할 수있는 이스케이프 및 나머지 이스케이프에 대해 설명 합니다.

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


답변

.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/


답변