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/