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):
.:[user@hostname:/home/user][pts/10]:.
Dan seperti ini (menjalankan perintah):
.:[user@hostname:/home/user][pts/10] {tail -F /var/log/syslog}:.
Di suatu tempat di .bashrc, saya memperpanjang PS1:
# set the terminals title. This is the "post-command" part,
# need to use a trap for pre-command (to add the command line to the title)
PS1+="\[\033]2;.:[\u@\h:\$PWD] [$(tty | cut -b 6-)]:.\007\]"
Tambahkan perintah saat ini, menggunakan histori 1 dan perangkap :
# set a fancy title (this is pre-command, in PS1 is after-command (to reset command)
trap 'echo -ne "\033]2;.:[${USER}@${HOSTNAME}:${PWD}] [$(tty | cut -b 6-)] {$(history 1 | sed "s/^[ ]*[0-9]*[ ]*//g")}:.\007"' DEBUG
Jangan ragu untuk beradaptasi dengan kebutuhan Anda.
.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
.