ব্যাপ্তি 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.