Prompt Bash Saya saat ini sedang mengatur bilah judul xterm menggunakan urutan berikut:
PS1='\033]0;\u@\h>\w\007'
Apakah ada cara mudah untuk menampilkan perintah saat ini di batang judul. Sebagai contoh, jika saya menggunakan file tailing tail -f foo.log
, saya ingin titlebar saya katakan tail -f foo.log
.
bash
prompt
xterm
window-title
dogbane
sumber
sumber
.bashrc
setelah setiap perintah di shell saya, saya mendapatkan output ini0;%s@%s:%s" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}
. Saya berasumsi bahwa saya dapat menekan output ini dengan menetapkan perintah trapPS1
? Namun,PS1=trap 'echo -ne "\033]0;$BASH_COMMAND\007"' DEBUG
tidak berhasil. Itu mengarah ke kesalahanbash: echo -ne "\033]0;$BASH_COMMAND\007": command not found
.trap
perintah sebagai perintah terpisah , bukan untuk menetapkannya ke PS1.(Terinspirasi oleh jawaban SU ini )
Anda dapat menggabungkan beberapa trik pesta:
$BASH_COMMAND
memegang perintah yang sedang dieksekusiJadi, jebak DEBUG dan minta pawang mengatur judul menjadi
$BASH_COMMAND
:Ini akan membuat judul diubah sampai sesuatu yang lain mengubahnya, tetapi selama Anda
$PS1
tetap sama itu tidak akan menjadi masalah - Anda memulai perintah, penangan DEBUG mengubah bilah judul, dan ketika perintah selesai bash menarik yang baru meminta dan mengatur ulang bilah judul Anda lagi.Tip berguna yang ditemukan di sini (juga dari mana jawaban SU berasal) adalah untuk memasukkan:
Ini akan membuat bash menyebarkan perangkap DEBUG ke sembarang subkulit yang Anda mulai; jika batang judul tidak akan diubah di dalamnya
sumber
ssh
/dev/tty
bukan stderr?Saya mengerjakan solusi saya sendiri dari berbagai posting di sekitar. Ini menciptakan judul yang berisi perintah pengguna, hostname, pwd, tty, dan yang saat ini dieksekusi (untuk bash).
Ini terlihat seperti ini (tidak ada perintah yang dijalankan):
Dan seperti ini (menjalankan perintah):
Di suatu tempat di .bashrc, saya memperpanjang PS1:
Tambahkan perintah saat ini, menggunakan histori 1 dan perangkap :
Jangan ragu untuk beradaptasi dengan kebutuhan Anda.
sumber