Yanıtlar:
Bu soruyu cevaplamanın önemli kısmı, bu kod parçacığından /etc/bash.bashrc
:
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
Değişkenin $debian_chroot
boş olması ve dosyanın /etc/debian_chroot
var olması ve okunabilir olması durumunda, değişken dosyanın içeriğine ayarlanır.
Şimdi bu ne için? Dosya /etc/debian_chroot
başka bir debian sistemi içinde chrooted debian sisteminiz olduğunda (ubuntu debian'a dayanmaktadır). Yani bu daha iyi bir genel bakış için. Chroot içinde olup olmadığını ayırt etmek için.
Örneğin, başka bir sisteme ait bir chroot'unuz /srv/nfs4/netboot/
varsa, bu chroot için bir ad belirleyebilirsiniz /srv/nfs4/netboot/etc/debian_chroot
(benim durumumda bu bir nfs4 pxe netboot sürücüsüdür):
user@host:~# echo "netboot" >/srv/nfs4/netboot/etc/debian_chroot
Ve sonra içeri girerken:
chroot /srv/nfs4/netboot/
Sorunuz şöyle görünüyor:
(netboot)user@host:~#
Genel olarak şu ${var:+value}
anlama gelir:
if $var is defined; then use 'value'; else do nothing
debian_chroot
Değişken tanımlanan /etc/bash.bashrc
dosyanın. /etc/debian_chroot
Bu dosya varsa ve okunabiliyorsa dosyanın içeriğini alır . Varsayılan olarak bu dosya mevcut değil.
Daha fazla detay için bakınız:
Şimdi, orada tam olarak ne olduğunu daha iyi anlamak için terminalde aşağıdakileri yapın:
radu@Radu:~$
PS1 = '$ {var: + ($ var)} \ u @ \ h: \ w \ $' radu @ Radu : ~ $ var = "test" ---- | ------------------ |
V
( test ) radu @ Radu : ~ $ var = "" radu @ Radu : ~ $ var = "ve diğerleri" ( ve benzeri ) radu @ Radu : ~ $
Ortam değişkeni $debian_chroot
varsa ve boş değilse ${debian_chroot:+($debian_chroot)}
, ($debian_chroot)
( $debian_chroot
etrafındaki parenslerin değeri budur ) ile değiştirilir.
$debian_chroot
Bu dosyanın var /etc/bash.bashrc
olup /etc/debian_chroot
olmadığının içeriğine ayarlanmıştır (varsayılan olarak yoktur) ve $debian_chroot
henüz bir değeri yoktur.
${debian_chroot:+($debian_chroot)}
Örneğin, Bash komut isteminizi tanımlamak için kullanılır.
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
Adından da anlaşılacağı gibi, etc/debian_chroot
chroot kök klasörlerinize yerleştirerek hangi chroot'ta bulunduğunuzu belirtmek için bu değişkeni kullanabilirsiniz .
Eğer bir chroot'un şansının ne olduğunu bilmiyorsanız buna ihtiyacınız yok ;-) Ama yine de Bash'inizin istemine başka bilgiler eklemek için kötüye kullanabilirsiniz.
Varsayılan olarak hiçbir şey yapmaz.
debian_chroot
Kullanmaya hiç gerek duymazsanız, komut istemini kullanarak görüntülenen zamanı koymak için kullanışlı bir yer:
export PROMPT_COMMAND='debian_chroot=$(date +%r)'
Bunu terminalinize yazın ve zamanla komut istemi değişikliklerinizi izleyin:
rick@alien:~$ export PROMPT_COMMAND='debian_chroot=$(date +%r)'
(09:14:59 PM)rick@alien:~$
Süre bir kez ayarlandıktan sonra, her saniye kullanımda bir güncellenen çalışan bir saat elde etmek için:
while sleep 1;do tput sc;tput cup $(($(tput lines)-1)) 1;printf `date +%r`;tput rc;done &