Come mai con xterm o una sessione ssh ottengo "TERM_PROGRAM: Undefined variable"?

La cosa succede in particolare se hai ripristinato le funzioni estese del Terminale, come suggerito dalla Faq 178: questa modifica porta infatti alla lettura del file /usr/share/tcsh/examples/aliases, che contiene un riferimento alla variabile TERM_PROGRAM.

L'errore è dovuto al fatto che la variabile in questione viene definita solo ed esclusivamente dal Terminale di Apple. Provando a lanciare la shell tcsh da un ambiente diverso dal Terminale stesso (xterm, konsole, gnome-terminal, sessione ssh, etc.) il riferimento va perduto, e si ha l'errore (errore che, fra l'altro, impedisce il corretto caricamento degli script di inizializzazione della shell).

Per risolvere la situazione è quindi necessario modificare il file /usr/share/tcsh/examples/aliases sostituendo le righe:

if ("$TERM_PROGRAM" == "Apple_Terminal") then
    alias settermtitle 'echo -n "ESC]2;\!:1^G"'
endif

con:

if ($?TERM_PROGRAM) then
    if ("$TERM_PROGRAM" == "Apple_Terminal") then
        alias settermtitle 'echo -n "ESC]2;\!:1^G"'
    endif
endif

La modifica va effettuata con i permessi di root.

[ Home | Elenco delle FAQ | Risorse | Feed RSS ]