Ответ 1
Вы можете увидеть, действительно ли он не установлен. Выполните команду set | grep TERM
.
Если нет, вы можете установить его так:
export TERM=xterm
У меня есть файл .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..."
Вы можете увидеть, действительно ли он не установлен. Выполните команду set | grep TERM
.
Если нет, вы можете установить его так:
export TERM=xterm
Используя команду терминала, то есть "очистить", в script, вызываемом из cron (без терминала), будет выведено это сообщение об ошибке. В вашем конкретном script команда smbmount ожидает терминал, в этом случае соответствующие рабочие условия подходят.
Вы ответили на этот вопрос:
Cron называет это
.sh
каждые 2 минуты
Cron не запускается в терминале, поэтому почему вы ожидаете, что он будет установлен?
Наиболее распространенной причиной получения этого сообщения об ошибке является то, что script пытается указать пользователю .profile
, который не проверяет, что он работает в терминале, прежде чем делать что-то связанное с tty. Методы обхода включают использование строки shebang, например:
#!/bin/bash -p
Это вызывает поиск сценариев профиля на системном уровне, которые (надеются) не пытаются сделать что-либо слишком глупо и будут иметь защитные меры вокруг кода, который зависит от запуска от терминала.
Если это целое число script, то ошибка TERM
исходит из чего-то другого, кроме простого содержимого script.