Cron 关闭树的着色

Cron 关闭树的着色

我编写了一个 bash 脚本,它可以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

但与着色(仅在 cron 中)相同的问题仍然存在。

完整脚本文本:

#!/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

答案1

我曾在类似的问题htopTERM=xterm最近,您需要在脚本中设置:

#!/bin/bash
export TERM=xterm

除了使用之外,您还可以直接为每次调用export设置变量:tree

…; do TERM=xterm tree -axC …

变量TERM表明tree您正在使用哪种类型的终端。在这种情况下,可能1重要的是文本窗口显示颜色的能力: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也可以正常工作。不过,给它一个有效值似乎是个好主意。

进一步阅读:

相关内容