GNU/Linux >> Tutoriels Linux >  >> Linux

Tput :aucune valeur pour $term et aucun -t spécifié ?

J'essaie d'exécuter un script bash via cron et j'obtiens l'erreur suivante au début de l'exécution :

tput: No value for $TERM and no -T specified

Voici ce qu'il y a dans ma crontab :

0 8 * * 1-5 cd /var/www/inv/ && /var/www/inv/unitTest run all 2>&1| mail -r "[email protected]" -s "Daily Inventory Unit Test Results" [email protected]

Réponse acceptée :

Votre script de test unitaire appelle probablement tput afin de générer une jolie sortie montrant quels tests réussissent et échouent. Sous cron il n'y a pas de terminal et donc pas de type de terminal ($TERM ), donc tput ne peut pas contrôler le terminal inexistant.

Votre script de test unitaire doit avoir 2 modes :

  • s'exécutant sur un terminal :il peut appeler tput pour générer de jolis résultats
  • ne s'exécute pas sur un terminal :il ne doit pas appeler tput et à la place, générez un format de sortie texte générique qui convient à l'envoi dans un e-mail comme vous le faites ici.

Le moyen le plus simple pour les tests unitaires de savoir s'ils s'exécutent ou non sur un terminal est de tester les descripteurs de fichiers stdio faisant référence à un terminal. S'il s'agit d'un script shell, alors :

if [ -t 1 ]; then
    tput bold; echo pretty; tput sgr0
else
    echo ugly
fi

Fondamentalement :ne pas appeler tput à moins que vous n'exécutiez sur un terminal, et vous éviterez ainsi l'erreur que vous obtenez, en plus de produire une sortie raisonnable dans le mode sous lequel vous vous trouvez.


Linux
  1. Bash For Loop Guide et exemples

  2. Installer et utiliser Guake - Un émulateur de terminal déroulant pour Debian 10

  3. Les séquences d'échappement de couleur terminales sont-elles définies n'importe où pour Bash ?

  4. tput :aucune valeur pour $TERM et aucune erreur -T spécifiée enregistrée par le processus CRON

  5. Couleur différente pour la commande et la sortie

Raccourcis pour naviguer dans l'historique du terminal

Pourquoi avons-nous besoin d'être root dans le terminal pour l'arrêt et le redémarrage ?

Outil Gui pour afficher et gérer la file d'attente d'impression ?

Interface ruban pour GTK et Qt

Valeur d'autorisation os.MkDir et os.MkDirAll ?

Matériel de terminal texte (pour Linux)