Variable TERM de Linux Mint .profile no configurada

Variable TERM de Linux Mint .profile no configurada

Tengo un script personalizado en mi archivo .profile, con código agregado y sin quitar nada, sin embargo, todavía responde con un TERM ENVIRONMENT VARIABLE NOT SETerror. Sin embargo, si ejecuto el comando echo $TERMen la terminal después del arranque, se configura en xterm-256color. Estoy dispuesto a incluso suprimir el error en lugar de resolverlo, ya que no afecta a mi computadora después del arranque.

Aquí está el script en .profile:

clear
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi


# --- EVERYTHING ABOVE HERE IS DEFAULT AND NOT CHANGED ---


wget -q --spider http://google.com
if [ $? -eq 0 ]; then
    (
     echo )
    else
    (
    echo Aquiring Internet Connection . . .
    sleep 6)
    fi
wget -q --spider http://google.com
if [ $? -eq 0 ]; then
    (
     echo )
    else
    (
    sleep 5)
    fi

wget -q --spider http://google.com
if [ $? -eq 0 ]; then
    echo ==========================================================================================================================================
    echo WELCOME LUKAKA                                     LOCAL WEATHER REPORT    VIA WTTR.IN                                      Running XFCE
    echo ==========================================================================================================================================
    curl wttr.in
    echo ==========================================================================================================================================
    echo
    echo -e "\033[1;32mStatus for play.wildcraftmc.com [Wildcraft Survival+ Server]   \033[0m" 
    mcstatus play.wildcraftmc.com status >wildcraft.txt
    sed -n 1p wildcraft.txt
    tail -n -1 wildcraft.txt
    echo ==========================================================================================================================================
    echo -e "\033[1;32mStatus For Mc.Starlegacy.Net [Starlegacy Space Survival]   \033[0m" 
    mcstatus mc.starlegacy.net status >Star-Legacy.txt
    sed -n 1p Star-Legacy.txt
    tail -n -1 Star-Legacy.txt
    echo ==========================================================================================================================================
    echo -e "\033[1;32mStatus For Jectile.com [Shoota COD Server]   \033[0m" 
    mcstatus Jectile.com status >Star-Legacy.txt
    sed -n 1p Star-Legacy.txt
    tail -n -1 Star-Legacy.txt
    echo ==========================================================================================================================================
    rm Star-Legacy.txt
    rm wildcraft.txt
else
    echo Connection Failed.
fi

echo -n "Would you like to start the GUI (y/n)? "
old_stty_cfg=$(stty -g)
stty raw -echo ; answer=$(head -c 1) ; stty $old_stty_cfg # Careful playing with stty
if echo "$answer" | grep -iq "^y" ;then
    sudo systemctl start lightdm
    onedrive-d start
    xinput set-prop 11 317 -1
else
    echo No
    echo -e "\033[0;33mskipping GUI. The following service(s) will not run: onedrive-d, lightdm, Minecraft-Lukaka, xinput 11.\033[0m"
    fi

Este es el mensaje de error:errar\

Para el contexto, lo que hace mi secuencia de comandos es verificar si hay una conexión a Internet; si está allí, obtiene wttr.in (clima) y usa una herramienta oficial de Minecraft para verificar el estado en algunos servidores.

Respuesta1

Entonces, una vez que su script llega al punto en el que le pregunta si desea iniciar la GUI, si dice que sí, ejecuta 3 comandos más:

sudo systemctl start lightdm

onedrive-d start

xinput set-prop 11 317 -1

Ahora, si sabe que los errores son inofensivos, puede redirigirlos a nada usando 2>/dev/nulldespués del comando que causa el error, como

sudo systemctl start lightdm 2>/dev/null

Sin embargo, sería más recomendable ejecutar cada uno de estos comandos por turno, revisar los errores que muestran y corregirlos si es posible.

Respuesta2

Debe verificar si está ejecutando en una terminal antes de imprimir mensajes o ejecutar comandos que requieran una terminal. Esto se puede hacer, por ejemplo, usando:

if [ -t 1 ] # check if stdout is a terminal
then
  # in a TTY, do stuff
fi

Las fuentes del proceso de inicio de sesión de la GUI /etc/profiley ~/.profilepara que se establezcan las variables de entorno que pueda necesitar. Pero este abastecimiento no se realiza en una terminal, por lo que TERMno está configurado. Cuando abre una terminal y la ejecuta echo $TERM, la terminal se ha configurado TERMpara los procesos iniciados por ella, por lo que obtiene un valor.

En mi opinión, debes empaquetar todo lo que agregaste en la ifverificación anterior, ya que nada de eso es particularmente relevante cuando se ejecuta en una GUI.

información relacionada