Posso modificare i titoli delle finestre iTerm per alcuni ma non tutti i comandi di esecuzione?

2

Stavo cercando una soluzione per impostare automaticamente il titolo personalizzato nel terminale in base a quale comando viene eseguito sul terminale corrente. Quindi, piuttosto che mostrare java in molte schede - mi piacerebbe avere a che fare con quale programma java è in esecuzione non tutti dicono solo java.

Ho trovato molto risposte interessanti e diverse ancora non completamente utile per il mio requierment

al momento, ho scritto sotto la riga in ~/.bash_profile

trap 'printf "3]0;%s
if [ "$SHELL" = '/bin/bash' ]
then
    case $TERM in
         rxvt|*term)
            set -o functrace
            trap 'echo -ne "\e]0;"; echo -n $BASH_COMMAND; echo -ne "
settitle () {
    export PREV_COMMAND=${PREV_COMMAND}${@}
    echo -ne "3]0;${PREV_COMMAND}
trap 'printf "3]0;%s
if [ "$SHELL" = '/bin/bash' ]
then
    case $TERM in
         rxvt|*term)
            set -o functrace
            trap 'echo -ne "\e]0;"; echo -n $BASH_COMMAND; echo -ne "
settitle () {
    export PREV_COMMAND=${PREV_COMMAND}${@}
    echo -ne "3]0;${PREV_COMMAND}%pre%7"
    export PREV_COMMAND=${PREV_COMMAND}' | '
}

export PROMPT_COMMAND=${PROMPT_COMMAND}';export PREV_COMMAND=""'
7"' DEBUG export PS1="\e]0;$TERM%pre%7$PS1" ;; esac fi
7" "${BASH_COMMAND//[^[:print:]]/}"' DEBUG
7" export PREV_COMMAND=${PREV_COMMAND}' | ' } export PROMPT_COMMAND=${PROMPT_COMMAND}';export PREV_COMMAND=""'
7"' DEBUG export PS1="\e]0;$TERM%pre%7$PS1" ;; esac fi
7" "${BASH_COMMAND//[^[:print:]]/}"' DEBUG

che funziona abbastanza bene in ** iTerm2 ** ma visualizza il comando completo come titolo, ma voglio l'argomento specifico o parte della stringa di comando come titolo

Supponiamo di eseguire questo comando nel terminale

sudo java - jar xyz_service/build/lib/xxx_snapshot.jar

e il titolo del terminale viene impostato così com'è, ma voglio solo impostare xyz_service come titolo

nota: il comando sopra mostra sempre update_terminal_cwd come titolo nel terminale di shell bash predefinito

le altre mie prove che però non funzionano

%pre%

anche questo non funziona

%pre%

Il mio ambiente è:

  • macOS HighSierra v 10.13.3
  • iTerm2 build 2.15
  • shell è bash v 2.8 (400)

Posso farlo senza un alias wrapper in bash che imposta esplicitamente il nome della variabile?

    
posta pro.mean 24.03.2018 - 18:26
fonte

0 risposte

Leggi altre domande sui tag