Dalam definisi terminal prompt saya di .bashrc
file saya , antara lain, saya memiliki potongan kode ini:
${debian_chroot:+($debian_chroot)}
Apa yang dilakukan ini, dan apakah saya membutuhkannya?
Bagian penting untuk menjawab pertanyaan ini adalah cuplikan dari /etc/bash.bashrc
:
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
Ini berarti jika variabel $debian_chroot
kosong dan file /etc/debian_chroot
ada dan dapat dibaca variabel diatur ke konten file.
Sekarang untuk apa ini? File tersebut /etc/debian_chroot
adalah ketika Anda memiliki sistem debian chroot di dalam sistem debian lain (ubuntu didasarkan pada debian). Jadi ini untuk ikhtisar yang lebih baik. Untuk membedakan apakah Anda berada di chroot atau tidak.
Ketika Anda memiliki chroot dari sistem lain misalnya, /srv/nfs4/netboot/
Anda dapat menetapkan nama untuk chroot ini /srv/nfs4/netboot/etc/debian_chroot
(dalam kasus saya ini adalah drive netboot nfs4 pxe):
user@host:~# echo "netboot" >/srv/nfs4/netboot/etc/debian_chroot
Dan kemudian ketika Anda chroot di dalam:
chroot /srv/nfs4/netboot/
Prompt Anda terlihat seperti ini:
(netboot)user@host:~#
Secara umum, ${var:+value}
berarti:
if $var is defined; then use 'value'; else do nothing
The debian_chroot
variabel didefinisikan dalam /etc/bash.bashrc
berkas. Dibutuhkan konten /etc/debian_chroot
file jika file ini ada dan dapat dibaca. Secara default, file ini tidak ada.
Untuk detail lebih lanjut, lihat:
Sekarang, untuk lebih memahami apa sebenarnya yang terjadi di sana, lakukan hal berikut di terminal:
radu@Radu:~$
PS1 = '$ {var: + ($ var)} \ u @ \ h: \ w \ $'
radu @ Radu: ~ $ var = "test"='${var:+($var)}\u@\h:\w\$ '
:~$="test"
--------
||
------------------------------------
||
V
(test) radu @ Radu: ~ $test)radu@Radu:~$ var = ""
radu @ Radu: ~ $ var = "dan seterusnya"
(dan seterusnya) radu @ Radu: ~ $=""
:~$="and so on"
and so on)radu@Radu:~$
Jika variabel lingkungan $debian_chroot
ada dan tidak kosong ${debian_chroot:+($debian_chroot)}
diganti oleh ($debian_chroot)
(yaitu nilai $debian_chroot
dengan parens di sekitarnya).
$debian_chroot
diatur /etc/bash.bashrc
ke konten /etc/debian_chroot
jika file itu ada (tidak secara default) dan $debian_chroot
belum memiliki nilai.
${debian_chroot:+($debian_chroot)}
biasanya digunakan untuk mendefinisikan Bash prompt Anda, misalnya
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
Seperti namanya, Anda dapat menggunakan variabel ini untuk menunjukkan chroot mana Anda berada dengan menempatkan etc/debian_chroot
ke dalam folder root chroot Anda.
Jika Anda tidak tahu apa itu chroot, kemungkinan Anda tidak membutuhkannya ;-) Tetapi Anda masih dapat menyalahgunakannya untuk memasukkan beberapa informasi lain ke dalam Bash prompt Anda
Secara default tidak melakukan apa-apa.
Jika Anda tidak perlu menggunakan debian_chroot
maka itu adalah tempat yang berguna untuk meletakkan waktu prompt perintah ditampilkan dengan menggunakan:
export PROMPT_COMMAND='debian_chroot=$(date +%r)'
Ketik ini di terminal Anda dan perhatikan perubahan prompt perintah Anda seiring waktu:
rick@alien:~$ export PROMPT_COMMAND='debian_chroot=$(date +%r)'
(09:14:59 PM)rick@alien:~$
Setelah waktu diatur satu kali, untuk mendapatkan jam berjalan yang memperbarui setiap penggunaan detik:
while sleep 1;do tput sc;tput cup $(($(tput lines)-1)) 1;printf `date +%r`;tput rc;done &