Show:TERM環境変数が設定されていない場合、これを含むfile.shがあります。
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でないか確認できます。コマンドset | grep TERM
を実行します。
そうでない場合は、次のように設定できます:export TERM=xterm
Cron(ターミナルなし)から呼び出されたスクリプトでターミナルコマンド(「クリア」)を使用すると、このエラーメッセージが表示されます。特定のスクリプトでは、smbmountコマンドは端末を想定しています。この場合、上記の回避策が適切です。
次の声明で質問に答えました。
Cronはこれを
.sh
を2分ごとに呼び出します
Cronは端末で実行されません。なぜ設定されるのでしょうか?
このエラーメッセージが表示される最も一般的な理由は、スクリプトがユーザーの.profile
のソースを取得しようとするためです。回避策には、次のようなShebangラインの使用が含まれます。
#!/ bin/bash -p
これにより、システムレベルのプロファイルスクリプトのソースが作成されます。このスクリプトは、愚かなことを何も試みず、端末からの実行に依存するコードを保護します。
これがスクリプト全体である場合、TERM
エラーは、スクリプトのプレーンコンテンツ以外の何かotherから発生しています。