GNU/Linux >> Belajar Linux >  >> Linux

Tput:Tidak Ada Nilai Untuk $term Dan Tidak -t Ditentukan?

Saya mencoba menjalankan skrip bash yang saya miliki melalui cron, dan saya mendapatkan kesalahan berikut di awal eksekusi:

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

Inilah yang ada di crontab saya:

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]

Jawaban yang Diterima:

Skrip pengujian unit Anda mungkin memanggil tput untuk menghasilkan keluaran cantik yang menunjukkan tes mana yang lulus dan gagal. Di bawah cron tidak ada terminal dan dengan demikian tidak ada tipe terminal ($TERM ), jadi tput tidak dapat mengontrol terminal yang tidak ada.

Skrip pengujian unit Anda harus memiliki 2 mode:

  • berjalan di terminal:ia dapat memanggil tput untuk menghasilkan keluaran yang tampak cantik
  • tidak berjalan di terminal:seharusnya tidak memanggil tput dan sebagai gantinya menghasilkan format output teks saja yang cocok untuk disalurkan ke email seperti yang Anda lakukan di sini.

Cara termudah untuk pengujian unit untuk mengetahui apakah mereka berjalan di terminal atau tidak adalah dengan menguji deskriptor file stdio yang merujuk ke terminal. Jika ini adalah skrip shell, maka:

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

Pada dasarnya:jangan panggil tput kecuali jika Anda menjalankan pada terminal, dan dengan demikian Anda akan menghindari kesalahan yang Anda dapatkan, plus menghasilkan keluaran yang wajar dalam mode apa pun yang Anda jalankan.


Linux
  1. 9 UNIX / Linux tput Contoh:Kontrol Warna Terminal dan Kursor Anda

  2. Kode untuk malloc dan gratis

  3. Simpan dan pulihkan terminal saat reboot

  1. Panduan Bash For Loop dan Contohnya

  2. Instal dan Gunakan Guake – Emulator Terminal drop-down untuk Debian 10

  3. Perbedaan antara cp -r dan cp -R (perintah salin)

  1. Bagaimana Dan Di Mana $term Diinterpretasikan?

  2. Apakah Urutan Escape Warna Terminal Ditetapkan Di Mana Saja Untuk Bash?

  3. Contoh Bash For Loop dan While Loop