GNU/Linux >> Znalost Linux >  >> Linux

Proměnná prostředí TERM není nastavena

Na otázku jste odpověděli tímto prohlášením:

Cron to nazývá .sh každé 2 minuty

Cron neběží v terminálu, tak proč byste očekávali, že bude nastaven?

Nejčastějším důvodem pro zobrazení této chybové zprávy je, že se skript pokouší získat zdroj .profile uživatele který nekontroluje, zda běží v terminálu, než udělá něco souvisejícího s tty. Zástupná řešení zahrnují použití řádku typu shebang jako:

#!/bin/bash -p

Což způsobuje získávání skriptů profilů na systémové úrovni, které se (doufají) nesnaží dělat nic příliš hloupého a budou mít kolem kódu, který závisí na spouštění z terminálu, stráže.

Pokud se jedná o celý skript, pak TERM chyba pochází z něčeho jiného než prostý obsah skriptu.


Použití příkazu terminálu, tj. "clear", ve skriptu volaném z cronu (bez terminálu), spustí tuto chybovou zprávu. Ve vašem konkrétním skriptu příkaz smbmount očekává terminál. V takovém případě jsou výše uvedená řešení vhodná.


Můžete vidět, zda to opravdu není nastaveno . Spusťte příkaz set | grep TERM .

Pokud ne, můžete to nastavit takto:export TERM=xterm


Linux
  1. Kde se nastavuje výchozí proměnná prostředí?

  2. Zsh:Nastavit Term=screen-256color v Tmux, ale Xterm-256color bez Tmux?

  3. Proměnná prostředí Maven nefunguje na jiném terminálu?

  1. Jak programově nastavit trvalou proměnnou prostředí v Linuxu?

  2. Nastavit proměnnou prostředí s prostorem v Linuxu

  3. Nastavte proměnnou prostředí ve skriptu prostředí/přístupu v aplikaci Tomcat

  1. Jak nastavit proměnnou uživatelského prostředí? (trvale, ne relace)?

  2. Jak zjistit, odkud se vzala proměnná prostředí?

  3. Kde je nastavena proměnná prostředí $HOME?