ব্যাপ্তি Bash # .. # with সহ লুপের জন্য


17

{# .. #} পাইথনের রেঞ্জ () এর অনুরূপ সংখ্যার বা অক্ষরের ক্রম তৈরি করে। যদি আমি echo {1..5}কমান্ড লাইনে কমান্ডটি কার্যকর করি:

1 2 3 4 5

পরিবর্তে নিম্নলিখিত বাশ স্ক্রিপ্ট প্রত্যাশার মতো কাজ করে না।

for i in {1..3};
do
    echo "Iteration $i"
done

মুদ্রণ করবে:

Iteration {1..3}

কেন?
* আমি ব্যবহার করতে পারি seqতবে আমি এটি পুরানো ( http://www.cyberciti.biz/faq/bash-for-loop/ ) পড়ি


স্ক্রিপ্টটি "sh" কমান্ড দ্বারা চালিত হলে ("বাশ" ব্যবহার করে চেষ্টা করুন) এই ত্রুটি ঘটে।
— শেক 01

উত্তর:


22

আমি আপনার কোডটি চেষ্টা করেছি (টার্মিনালে অনুলিপি করুন) এবং এটি আপনি পোস্ট করেছেন তার থেকে আলাদা ফলাফল এনেছে:

for i in {1..3};
do
    echo "Iteration $i"
done
#---OUTPUT BELOW---
Iteration 1
Iteration 2
Iteration 3

আমি লিনাক্স মিন্ট 12 লিসা (উবুন্টু থেকে প্রাপ্ত) ব্যাশ সংস্করণ 4.2.10 (1) সহ ব্যবহার করছি - দয়া করে


2
তুমি ঠিক! আমি ভেবেছিলাম শ এবং বাশ একই জিনিস ..
— শেক 0

1
না, বাশ এবং শ একেবারে আলাদা ... শ এর চেয়ে বাশ আরও সক্ষম, এটি শ এর কাঁধে তৈরি করা হয়েছিল :) যদিও তাদের উভয়েরই সামঞ্জস্যের একটি ভাল ডিগ্রি রয়েছে তবে তাদের পার্থক্যও রয়েছে
— জিপিজাপ

নোট করুন যে আপনি নেস্টেড তালিকাগুলি var {i..j}, {l..m}}; do প্রতিধ্বনি in; তে করতে পারেন; যদি আপনার অনিয়মিত ক্রম যেমন 1 2 3 7 8 9
— brown.2179 এর প্রয়োজন হয়

নোট করুন যে কিছু ডিস্ট্রোজে /bin/shআসলে বাশকে নির্দেশ করছে, দেবিয়ান এবং উবুন্টুতে এটি সাধারণত পয়েন্ট করে /bin/dashযা বেশিরভাগই পসিক্স অনুগত তবে বাশের মতো সমস্ত একই বাক্য গঠন সমর্থন করে না।
— ড্রাগন 788
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.