मैंने अपने स्वयं के समाधान के चारों ओर विभिन्न पदों से काम किया। यह उपयोगकर्ता, hostname, pwd, tty और वर्तमान में निष्पादित कमांड (bash के लिए) शीर्षक देता है।
यह इस तरह दिखता है (कोई आदेश निष्पादित नहीं किया जा रहा है):
.:[user@hostname:/home/user][pts/10]:.
और इस तरह (एक कमांड निष्पादित):
.:[user@hostname:/home/user][pts/10] {tail -F /var/log/syslog}:.
कहीं .bashrc में, मैंने 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\]"
इतिहास 1 और ट्रैप का उपयोग करके वर्तमान कमांड जोड़ता है :
# 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
बेझिझक अपनी जरूरतों को अपनाएं।
.bashrc
मेरे शेल में प्रत्येक कमांड के बाद इसे जोड़ने पर मुझे यह आउटपुट मिलता है0;%s@%s:%s" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}
। मुझे लगता है कि मैं ट्रैप कमांड को बताकर इस आउटपुट को दबा सकता हूंPS1
? हालांकि,PS1=trap 'echo -ne "\033]0;$BASH_COMMAND\007"' DEBUG
काम नहीं करता है। यह त्रुटि की ओर जाता हैbash: echo -ne "\033]0;$BASH_COMMAND\007": command not found
।