सवाल क्रोन पेड़ के रंगीकरण बंद कर देता है


मैंने एक बैश स्क्रिप्ट बनाई जो कर सकता है 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

1
2018-06-14 21:57


मूल




जवाब:


मैंने एक में काम किया के साथ इसी तरह की समस्या htop हाल ही में, आपको सेट करने की जरूरत है TERM=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 साथ ही काम करता है। इसे वैध मान देना हालांकि एक अच्छा विचार प्रतीत होता है।

आगे की पढाई:


3
2018-06-14 22:23