2010-07-30 18 views
24

कार्य पूरा होने पर अंतिम पंक्ति के अंत में [ठीक] प्रिंट करके एक फैंसी प्रभाव करना चाहते हैं।उसी लाइन पर आउटपुट जारी रखें

इस समझे:

echo "$0: Starting backup process in '$backupdir'... " 
sleep 3 
echo '[OK]' 

मैं \r, \c, \ की तरह पहले गूंज के अंत में अलग अलग बातें की कोशिश की, दूसरे की शुरुआत में, यह ... कोई अच्छा Google पर।

मैं उत्पादन इस के लिए यह चाहते हैं:

./backup.sh: Starting backup process in '/backup'... [OK]

धन्यवाद

+1

कृपया का उपयोग नहीं करते 'echo',' printf' पर बने रहें http पढ़ें: क्यों अधिक जानकारी के लिए //www.opengroup.org/onlinepubs/009695399/utilities/echo.html क्यों। – Anders

उत्तर

44

-n का प्रयोग करें,: बाद में

./backup.sh: Starting backup process in '/backup'...

... और 3 सेकंड, [OK] जोड़ने अंत में मुद्रण नई लाइन छोड़ने का विकल्प। echo docs पर अधिक संदर्भ।

तो तुम कुछ इस तरह कर सकता है:

echo -n "$0: Starting backup process in '$backupdir'... " 
12

का उपयोग अधिक पोर्टेबल printf

+0

पोर्टेबल किस तरह से? – Johan

+2

यहां देखें: http://en.wikipedia.org/wiki/Echo_%28command%29#cite_note-0 – ghostdog74

+5

गूंज के कुछ कार्यान्वयन नई लाइन को दबाने के लिए '-n' ध्वज का उपयोग करते हैं; अन्य स्ट्रिंग के अंत में '\ c' का उपयोग करते हैं। यदि आप अपनी स्क्रिप्ट में से किसी एक का उपयोग करते हैं, और गूंज दूसरे की अपेक्षा करता है, तो आपको अंत में "-n" या "\ c" अंत में मिल जाएगा। लेकिन 'printf"% s "" $ 0: ... "हमेशा उम्मीद के अनुसार काम करेगा। –

संबंधित मुद्दे