답변:
이 질문에 대답하는 데 중요한 부분은 다음의 스 니펫입니다 /etc/bash.bashrc
.
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
변수 $debian_chroot
가 비어 있고 파일 /etc/debian_chroot
이 존재하고 읽을 수있는 경우 변수는 파일의 내용으로 설정됩니다.
이제이게 뭐야? 이 파일 /etc/debian_chroot
은 다른 데비안 시스템 안에 루트가있는 데비안 시스템이있을 때입니다 (우분투는 데비안을 기반으로합니다). 더 나은 개요입니다. chroot에 있는지 여부를 구별합니다.
예를 들어 다른 시스템의 chroot가있는 /srv/nfs4/netboot/
경우이 chroot의 이름을 설정할 수 있습니다 /srv/nfs4/netboot/etc/debian_chroot
(제 경우에는 nfs4 pxe netboot 드라이브입니다).
user@host:~# echo "netboot" >/srv/nfs4/netboot/etc/debian_chroot
그리고 당신이 안에 뿌리를 내릴 때 :
chroot /srv/nfs4/netboot/
프롬프트는 다음과 같습니다.
(netboot)user@host:~#
일반적으로 다음을 ${var:+value}
의미합니다.
if $var is defined; then use 'value'; else do nothing
debian_chroot
변수에 정의 된 /etc/bash.bashrc
파일입니다. /etc/debian_chroot
이 파일이 존재하고 읽을 수있는 경우 파일 내용을 가져옵니다 . 기본적으로이 파일은 존재하지 않습니다.
자세한 내용은 다음을 참조하십시오.
이제 정확히 무슨 일이 일어나고 있는지 더 잘 이해하려면 터미널에서 다음을 수행하십시오.
radu@Radu:~$
PS1 = '$ {var : + ($ var)} \ u @ \ h : \ w \ $' radu @ Radu : ~ $ var = "test" ---- | ------------------ |
V
( 테스트 ) 라두 @ 라두 : ~ $ VAR = "" 라두 @ 라두 : ~ $ VAR = "등등" ( 등 ) 라두 @ 라두 : ~ $
환경 변수 $debian_chroot
가 존재하고 비어 있지 않은 경우이 값으로 ${debian_chroot:+($debian_chroot)}
대체됩니다 ($debian_chroot)
(즉, $debian_chroot
주변의 parens 값 ).
$debian_chroot
파일이 존재하고 (기본적으로 존재하지 않음) 아직 값이없는 경우 /etc/bash.bashrc
의 내용으로 설정됩니다 ./etc/debian_chroot
$debian_chroot
${debian_chroot:+($debian_chroot)}
일반적으로 Bash 프롬프트를 정의하는 데 사용됩니다 (예 :
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
이름에서 알 수 있듯이이 변수를 사용 etc/debian_chroot
하여 chroot 루트 폴더 에 배치 하여 현재 chroot를 나타낼 수 있습니다 .
chroot가 무엇인지 모르는 경우에는 필요하지 않습니다. ;-) 그러나 Bash 프롬프트에 다른 정보를 포함시키기 위해 남용 할 수 있습니다.
기본적으로 아무것도하지 않습니다.
사용할 필요가 없으면 debian_chroot
다음 을 사용 하여 명령 프롬프트가 표시된 시간을 저장하는 편리한 장소입니다.
export PROMPT_COMMAND='debian_chroot=$(date +%r)'
터미널에 이것을 입력하고 시간이 지남에 따라 명령 프롬프트가 변경되는 것을보십시오.
rick@alien:~$ export PROMPT_COMMAND='debian_chroot=$(date +%r)'
(09:14:59 PM)rick@alien:~$
시간이 한 번 설정된 후 매 초마다 업데이트되는 실행 시계를 얻으려면 다음을 수행하십시오.
while sleep 1;do tput sc;tput cup $(($(tput lines)-1)) 1;printf `date +%r`;tput rc;done &