2010-10-21 4 views
6

मैं indent से कुछ (लेकिन बैश) स्क्रिप्ट के लिए कुछ ढूंढ रहा हूं। कंसोल केवल, कोई रंगीन नहीं, आदिशैल स्क्रिप्ट के लिए सुंदर प्रिंट

क्या आप एक के बारे में जानते हैं?

+0

इसके अलावा अपने उत्तरों को [इस सामान्य प्रश्न] में डालने पर विचार करें (http://stackoverflow.com/questions/3923301/what-plplications-do-you-now-of-that-can-reformat-code) – Benoit

उत्तर

5

विम बैश स्क्रिप्ट इंडेंट कर सकते हैं। लेकिन इंडेंट करने से पहले उन्हें दोबारा सुधारें।
अपनी बैश स्क्रिप्ट का बैकअप लें, इसे vim के साथ खोलें, gg=GZZ टाइप करें और इंडेंट को सही किया जाएगा। (अधीर के लिए नोट: यह फ़ाइल को ओवरराइट करता है, इसलिए बैकअप करना सुनिश्चित करें!)

हालांकि, << के साथ कुछ बग (किसी लाइन पर पहले अक्षर के रूप में ईओएफ की अपेक्षा) उदा।

संपादित करें: ZZ

+0

आह आदमी! +1000 अगर मैं कर सकता था। – Jamie

-1

मिले इस http://www.linux-kheops.com/doc/perl/perl-aubert/fmt.script ZQ नहीं।

बहुत अच्छा, केवल एक चीज जो मैंने ली है वह है [...] -> परीक्षण प्रतिस्थापन।

+1

आपके द्वारा पोस्ट किया गया लिंक अब पहुंच योग्य नहीं है। – Myz

0

बैश में मैं यह कर:

source <(echo "Zibri() {";cat script_to_be_reindented.sh; echo "}") 
declare -f Zibri| cut -c 5-|head --lines=-1|tail --lines=+3 

इस टिप्पणी निकल जाते हैं और स्क्रिप्ट "बैश रास्ता" reindents। अगर स्क्रिप्ट HEREDOCS शामिल यह काम नहीं करेगा, लेकिन यदि आप ऐसा करते हैं:

source <(echo "Zibri() {";cat script_to_be_reindented.sh; echo "}") 
declare -f Zibri|head --lines=-1|tail --lines=+3 

यह किसी भी स्क्रिप्ट के साथ काम करेंगे लेकिन पूरे स्क्रिप्ट 4 स्थानों से इंडेंट कर दिया जाएगा। संशोधित करने के लिए स्वतंत्र महसूस करें लेकिन अपनी लिपि में अपना नाम उद्धृत करें और इसे पोस्ट करें! : डी