Крон выключает колоризацию дерева

Я сделал сценарий удара, который может tree целая структура каталогов рекурсивно, помещая в каждый каталог файл HTML, сгенерированный aha. Сценарий прочитал список каталогов, которые будут индексированы. find ищите каждый каталог в каталоге и генерируйте полный список каталогов. Если каталог /media/veracrypt1 содержит 50 каталогов в иерархической структуре, tree делает дерево из всего в данном каталоге и "ниже", запишите файл HTML с зарегистрированной древовидной структурой в каталоге, затем спуститесь, повторите действие вниз к нижней части.

Я хотел бы, чтобы сценарий был запущен в определенное время cron. Работы сценария, но колоризация не делают и вывод канала является черным на белом. Я полагаю, что это - результат cron не имея доступ к LS_COLOR системная переменная. (Это - то, что я подозреваю),

Как исправить сценарий, чтобы заставить его произвести желаемый эффект?

Жизненный фрагмент сценария:

tree -axC "$file" | aha --title $(basename "${file// /_}") > "$file"/[z9][tree]_$(basename "${file// /_}").html; done

Это работает также без aha:

tree -axC "$file" > "$file"/[z9][tree]_$(basename "${file// /_}").html; done

но та же проблема с колоризацией (только в кроне) содержит.

Текст полного сценария:

#!/bin/bash



  List_make_R_general=/track/to/location_1.txt
   List_R_gen_general=/track/to/location_2.txt
             cron_log=/track/to/location_3.txt





echo > $cron_log
cat "$List_make_R_general" | while read file; do find "$file" -type d; done | tee "$List_R_gen_general"
 cat "$List_R_gen_general" | while read file; do tree -axC "$file" | aha --title $(basename "${file// /_}") > "$file"/[z9][tree]_$(basename "${file// /_}").html; done
 cat "$List_R_gen_general" | while read file; do tree -axC "$file" -I "*.JPG" | aha --title $(basename "${file// /_}") > "$file"/[z9][tree]_$(basename "${file// /_}")_[excl].html; done
echo -e "Tree done successfully: $(date) \n" >> $cron_log
exit
2
задан 15 June 2018 в 09:28

1 ответ

Я работал в подобной проблеме с htop в последнее время необходимо установить TERM=xterm в Вашем сценарии:

#!/bin/bash
export TERM=xterm
…

Вместо использования export можно также установить переменную для каждого tree вызов непосредственно:

…; do TERM=xterm tree -axC …

TERM переменная говорит tree какой тип терминала Вы используете. Какие вопросы probably1 в этом случае текстовая возможность окна отображающегося цвета: xterm создается с 8 цветами в то время как, например. xterm-256color – Вы предположили, что это – создается с 256 цветами. Можно получить список возможных значений для системы с ls -1 /lib/terminfo/x и просмотрите и сравните их возможности с infocmp, например.

infocmp xterm                              # view capabilities
infocmp xterm xterm-256color               # compare
infocmp xterm xterm-256color | grep colors # compare only colors

1, Как отмечено в комментариях tree на самом деле просто тесты для TERM быть установленным на что-либо вообще, таким образом, TERM=my_precious tree работы также. При предоставлении ему допустимое значение кажется хорошей идеей все же.

Дальнейшее чтение:

4
ответ дан 2 December 2019 в 02:13

Другие вопросы по тегам:

Похожие вопросы: