सभी गोले और किसी भी प्रणाली के लिए पोर्टेबल जो कि seq है (जैसा कि इस प्रश्न को टैग किया गया है)
यदि प्रारंभ 1 है:
$ echo $(seq 10)
1 2 3 4 5 6 7 8 9 10
अन्यथा:
$ echo $(seq 5 10)
5 6 7 8 9 10
बीसी के साथ:
$ echo $(echo "for (i=0;i<=1000;i++) i"| bc)
मारपीट में
echo {1..10}
ध्यान दें:
यह इको समाधान काम करता है यदि IFS के मूल्य में एक नई रेखा होती है, जिसे वह डिफ़ॉल्ट रूप से करता है।
डिफ़ॉल्ट रूप से IFS अनुक्रम <space> <tab> <newline> पर सेट है । और शेल के प्रत्येक स्वच्छ शुरुआत के लिए रीसेट किया गया है। लेकिन, अगर आपको कोई चिंता है कि यह किसी चरम कोने के मामले में बदल गया है, तो हमारे पास कई समाधान हैं।
बैश, zsh, ksh के तहत बस का उपयोग करें: IFS = $ '\ t \ n' (इस उत्तर के सभी को छोड़ें)।
हालाँकि, शॉ के तहत IFS का मान रीसेट करना जटिल हो सकता है है यहां पूरा विवरण पढ़ें ।
IFS को परेशान करें।
$ unset IFS; echo $(seq 5 10) #Always work.
हमेशा काम करेंगे। बशर्ते कि नीचे कोई कोड (या बाल स्क्रिप्ट) नहीं होगा जिसे IFS सेट की आवश्यकता है, जैसे कि एक स्क्रिप्ट जो करती हैOldIFS="$IFS"
।
सही समाधान।
श के लिए एक ट्रिक का उपयोग करना :
sh -c 'IFS="$(printf " \t\nx")"; IFS="${IFS%x}"; printf "$IFS"|xxd' # correct.
echo $(seq 1 10)