Подтвердить что ты не робот

Неверная переменная среды TERM

У меня есть файл .sh с этим при запуске show: переменная среды TERM не установлена.

smbmount //172.16.44.9/APPS/Interfas/HERRAM/sc5 /mnt/siscont5 -o 
iocharset=utf8,username=backup,password=backup2011,r

if [ -f /mnt/siscont5/HER.TXT ]; then
    echo "No puedo actualizar ahora"
    umount /mnt/siscont5
else 
    if [ ! -f /home/emni/siscont5/S5.TXT ]; then
        echo "Puedo actualizar... "
        touch /home/emni/siscont5/HER.TXT
        touch /mnt/siscont5/SC5.TXT
        mv -f /home/emni/siscont5/CCORPOSD.DBF /mnt/siscont5
        mv -f /home/emni/siscont5/CCTRASD.DBF /mnt/siscont5
        rm /mnt/siscont5/SC5.TXT
        rm /home/emni/siscont5/HER.TXT
        echo "La actualizacion ha sido realizada..."
    else
        echo "No puedo actualizar ahora: Interfaz exportando..."
    fi
fi
umount /mnt/siscont5
echo "/mnt/siscont5 desmontada..."
4b9b3361

Ответ 1

Вы можете увидеть, действительно ли он не установлен. Выполните команду set | grep TERM.

Если нет, вы можете установить его так: export TERM=xterm

Ответ 2

Используя команду терминала, то есть "очистить", в script, вызываемом из cron (без терминала), будет выведено это сообщение об ошибке. В вашем конкретном script команда smbmount ожидает терминал, в этом случае соответствующие рабочие условия подходят.

Ответ 3

Вы ответили на этот вопрос:

Cron называет это .sh каждые 2 минуты

Cron не запускается в терминале, поэтому почему вы ожидаете, что он будет установлен?

Наиболее распространенной причиной получения этого сообщения об ошибке является то, что script пытается указать пользователю .profile, который не проверяет, что он работает в терминале, прежде чем делать что-то связанное с tty. Методы обхода включают использование строки shebang, например:

#!/bin/bash -p

Это вызывает поиск сценариев профиля на системном уровне, которые (надеются) не пытаются сделать что-либо слишком глупо и будут иметь защитные меры вокруг кода, который зависит от запуска от терминала.

Если это целое число script, то ошибка TERM исходит из чего-то другого, кроме простого содержимого script.