2013-07-19 11 views
23

मैं एक .sh फ़ाइल में निम्न कोड:बैश: संख्या की श्रेणी

for num in {1..10} 
do 
    echo $num 
done 

कौन सा 10 1 से संख्या मुद्रित चाहिए लेकिन, यह मैं क्या मिलता है:

{1..10} 

इसके अलावा, सी-तरह sytax का उपयोग कर के रूप में अच्छी तरह से काम नहीं करता है:

for ((i=1; i<=10; i++)) 

यह मैं एक त्रुटि हो जाता है:

Syntax error: Bad for loop variable 

मेरे पास बैश का संस्करण 4.2.25 है।

+0

आपका कोड 4.1.5 –

+0

तुम भी एक सीमा मुद्रित कर सकते हैं मेरे लिए ठीक काम करता है सीक का उपयोग कर संख्याओं का। "सीक 1 5" आज़माएं। – devnull

+0

यदि आप 'bash' को 'sh' के रूप में निष्पादित करते हैं, तो यह काम नहीं करेगा; यदि आप 'bash' को 'bash' के रूप में निष्पादित करते हैं, तो यह काम करेगा। –

उत्तर

35

कोड होना चाहिए इस प्रकार है (sh ध्यान दें कुटिया का कहना है bash, नहीं):

#!/bin/bash 
echo "Bash version ${BASH_VERSION}..." 
for i in {0..10..1} 
    do 
     echo "Welcome $i times" 
done 

स्रोत http://www.cyberciti.biz/faq/bash-for-loop/

+0

यह: (ध्यान दें कि शेबांग कहते हैं, बाश नहीं, 0) –

+2

'..1' अनावश्यक है। –

+0

कम से कम यह मुझे लगता है कि वह एक बैश खोल पर एक शेल स्क्रिप्ट निष्पादित कर रहा है। – Pradheep

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