GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Umgebungsvariable TERM nicht gesetzt

Sie haben die Frage mit dieser Aussage beantwortet:

Cron nennt dies .sh alle 2 Minuten

Cron läuft nicht in einem Terminal, warum sollten Sie also erwarten, dass eines eingerichtet wird?

Der häufigste Grund für diese Fehlermeldung ist, dass das Skript versucht, den .profile des Benutzers abzurufen was nicht überprüft, ob es in einem Terminal läuft, bevor es etwas TTY-bezogenes tut. Problemumgehungen umfassen die Verwendung einer Shebang-Zeile wie:

#!/bin/bash -p

Was das Sourcing von Profilskripten auf Systemebene verursacht, die (hoffentlich) nicht versuchen, etwas zu Dummes zu tun, und Code schützen, der davon abhängt, dass er von einem Terminal ausgeführt wird.

Wenn dies das gesamte Skript ist, dann TERM Fehler kommt von etwas anderem als der reine Inhalt des Skripts.


Die Verwendung eines Terminalbefehls, z. B. "clear", in einem Skript, das von cron (kein Terminal) aufgerufen wird, löst diese Fehlermeldung aus. In Ihrem speziellen Skript erwartet der Befehl smbmount ein Terminal, in diesem Fall sind die oben genannten Problemumgehungen angemessen.


Sie können sehen, ob es wirklich nicht gesetzt ist . Führen Sie den Befehl set | grep TERM aus .

Wenn nicht, können Sie es so einstellen:export TERM=xterm


Linux
  1. Linux-Umgebungsvariablen:Lesen und Festlegen auf einem Linux-VPS

  2. So legen Sie eine Benutzerumgebungsvariable fest (dauerhaft, nicht Sitzung)?

  3. Wo wird die Term-Umgebungsvariable Default gesetzt?

  4. Maven-Umgebungsvariable funktioniert nicht auf anderem Terminal?

  5. Beispiele für Linux-Exportbefehle (Festlegen von Umgebungsvariablen)

So legen Sie die Umgebungsvariable in Windows fest

So legen Sie Umgebungsvariablen in MacOS fest

So setzen Sie die Umgebungsvariable in Bash

Festlegen einer statischen IP-Adresse, wenn sie nicht von DHCP erhalten wurde (Skript)

Wo wird die PATH-Variable in Ubuntu gesetzt?

Wie setze ich die Umgebungsvariable in GDB mit dem Shell-Befehl?