কিভাবে বাশ লিখুন হোস্ট-লুপ

কমান্ড, সিনট্যাক্স, এবং উদাহরণ

আপনি একটি ক্রম ফাইল একটি স্ক্রিপ্ট ফাইলে লিখুন এবং তারপর এটি চলমান দ্বারা কমান্ড একটি ক্রম নির্বাহ করতে পারেন।

একটি স্ক্রিপ্ট ফাইলটি সাধারণত একটি টেক্সট ফাইল, সাধারণতঃ এসএইচ ফাইল এক্সটেনশান সহ, নির্দেশাবলীর একটি অনুক্রম রয়েছে যা কমান্ড লাইনে ( শেল ) থেকেও কার্যকর হতে পারে।

লুপ উদাহরণের সময়

নীচে যখন একটি লুপ উদাহরণ। সম্পাদিত হলে, এই স্ক্রিপ্ট ফাইলটি স্ক্রিনে সংখ্যা 1 থেকে 9 মুদ্রণ করবে। সময়-বিবৃতিটি- জন্য লুপের চেয়ে পরিসমাপ্তি অবস্থা নির্দিষ্ট করার জন্য আপনাকে আরো নমনীয়তা প্রদান করে।

#! / bin / bash গণনা = 1 এবং [$ গণনা - 9 নম্বরে] "$ গণনা" ঘুম 1 "((গণনা ++) সম্পন্ন করুন) সম্পন্ন হয়েছে

উদাহরণস্বরূপ, আপনি পূর্ববর্তী স্ক্রিপ্টটি বর্ধিত বিবৃতি "((গণনা ++)) বাদ দিয়ে একটি অসীম লুপ করতে পারেন":

#! / bin / bash গণনা = 1 এবং [$ গণনা - 9 নম্বরে] "$ গণনা" ঘুমানো 1 টি নিখরচায় করুন

"ঘুম 1" বিবৃতিটি প্রতিটি পুনরাবৃত্তির 1 সেকেন্ডের জন্য মৃত্যুদন্ডের জন্য বিরতি দেয়। প্রক্রিয়াটি শেষ করতে Ctrl + C কীবোর্ড শর্টকাট ব্যবহার করুন।

আপনি শর্ত হিসাবে একটি কোলন নির্বাণ দ্বারা একটি অসীম লুপ তৈরি করতে পারেন:

#! / bin / bash গণনা = 1: যখন "$ গণনা" ঘুম 1 ((গণনা ++)) প্রতিধ্বনি করবেন

যখন-লুপের একাধিক শর্ত ব্যবহার করার জন্য, আপনাকে ডাবল বর্গাকার বন্ধনী নোট ব্যবহার করতে হবে:

গণনা = 1 সম্পন্ন = 0 [[$ count -le 9] এবং& [$ সম্পন্ন == 0]] "$ গণনা" ঘুম 1 ((গণনা ++)) প্রতিধ্বনি করলে [$ count == 5]; তারপর $ সম্পন্ন = 1 ফাই হয়েছে

এই স্ক্রিপ্টে, পরিবর্তনশীল "সম্পন্ন" 0 থেকে শুরু হয় এবং তারপর গণনা 5 এ পৌঁছায় যখন 1 এ সেট করা হয়। লুপের অবস্থা বলে যে যতক্ষণ "গণনা" 9 এর কম এবং "সম্পন্ন" সমান হয় শূন্য থেকে সুতরাং যখন লুপগুলি প্রস্থান করে তখন গণনা 5 সমান হয়।

"&&" অর্থ লজিকাল "এবং" এবং "||" লজিক্যাল "বা" মানে

কনজেকশন "এবং" এবং "বা" অবস্থার জন্য একটি বিকল্প সংকেত হল "-a" এবং "-o" একক বর্গাকার বন্ধনীগুলির সাথে। উপরের শর্ত:

[[$ গণনা-আল 9] && [$ সম্পন্ন == 0]]

... হিসাবে পুনরায় লেখা হতে পারে:

[$ গণনা -9 9] -এ [$ সম্পন্ন == 0]

একটি টেক্সট ফাইল পড়া সাধারণত একটি লুপ সঙ্গে সম্পন্ন করা হয়। নিম্নলিখিত উদাহরণে, bash স্ক্রিপ্ট "inventory.txt:" নামক একটি ফাইলের লাইন দ্বারা বিষয়বস্তু লাইনটি পড়ে।

ফাইল = inventory.txt exec 6

প্রথম লাইন "FILE" ভেরিয়েবলের ইনপুট ফাইলের নাম নির্ধারণ করে। দ্বিতীয় লাইন ফাইলের বিবরণী "6" (এটি 3 এবং 9 এর মধ্যে কোনও মান হতে পারে) "মানক ইনপুট" সংরক্ষণ করে। এটি করা হয় যাতে স্ক্রিপ্টের শেষে "0" বর্ণনাকারীর "স্ট্যান্ডার্ড ইনপুট" পুনরুদ্ধার করা যায় (3 নং রেজায় "exec 0" শিরোনামের ইনপুট ফাইলটি "0," ব্যবহার করা হয়। স্ট্যান্ডার্ড ইনপুট জন্য। "পড়া" বিবৃতি তারপর প্রতিটি পুনরাবৃত্তির উপর ফাইল থেকে একটি লাইন পড়ে এবং এটি "লাইন 1" ভেরিয়েবলের মধ্যে নির্ধারণ করে।

অকালমুখী একটি সময়-লুপ প্রস্থান করার জন্য, আপনি এই মত বিরতি বিবৃতি ব্যবহার করতে পারেন:

গণনা = 1 সম্পন্ন = 0 [$ গণনা - 9 নম্বরে] "$ গণনা" ঘুম 1 ((গণনা ++)) প্রতিধ্বনি করলে [$ count == 5] তারপর ফিক্সড ইকো শেষ হয়ে যাবে

বিভাজক বিভাজন সমাপ্তির সময় কর্ম সঞ্চালন চূড়ান্ত এবং এটি নিম্নলিখিত কোন বিবৃতি সঞ্চালিত। এই ক্ষেত্রে, বিবৃতি "ইকো সমাপ্তি।"

অন্যদিকে, অবিরত বিবৃতিটি কেবল বর্তমান পুনরাবৃত্তির বাকি সময়টি লুপ বিবৃতিটি ছেড়ে যায় এবং পরবর্তী পুনরাবৃত্তিতে সরাসরি যুক্ত হয়:

গণনা = 1 সম্পন্ন = 0 এবং [$ গণনা -9 9] ঘুম 1 ((গণনা ++)) যদি [$ গণনা == 5] হয় তাহলে "$ গণনা" করুন "

এই ক্ষেত্রে, "অবিরত" বিবৃতিটি কার্যকর করা হয় যখন পরিবর্তনশীল "গণনা" 5 তে পৌঁছে যায়। এর অর্থ হল এই পুনরাবৃত্তির পর পরবর্তী বিবৃতিটি ("গণনা" -এর মান (echo "$ count") কার্যকর করা হয় না (যখন "গণনা" 5 এর মান)।