ব্যাশ সাবশেলস

Byasa Sabaselasa



কখনও কখনও, এর জন্য আপনাকে পটভূমিতে এক বা একাধিক কমান্ড বা স্ক্রিপ্ট চালানোর প্রয়োজন হয়। এই কাজটি একটি স্ক্রিপ্ট ফাইলে সমস্ত কমান্ড বা স্ক্রিপ্ট লিখে এবং অ্যাম্পারস্যান্ড (&) ব্যবহার করে ফাইলটি সম্পাদন করে বা বর্তমান শেল থেকে সাবশেলে কমান্ড বা স্ক্রিপ্ট চালানোর মাধ্যমে করা যেতে পারে। সাবশেলটি $() বা ব্যাকটিক্স (`) এর সাথে সংযুক্ত করে একাধিক কমান্ড বা স্ক্রিপ্ট চালানোর জন্য ব্যবহার করা যেতে পারে। ব্যাশ সাবশেল ব্যবহার করার পদ্ধতি এই টিউটোরিয়ালে দেখানো হয়েছে।

সাবশেলের বিভিন্ন উদাহরণ

সাবশেলে স্ক্রিপ্ট চালানোর বিভিন্ন উপায় টিউটোরিয়ালের এই অংশে দেখানো হয়েছে।

উদাহরণ 1: একক উদ্ধৃতি এবং ডাবল উদ্ধৃতি ব্যবহার করে সাবশেলটি কার্যকর করুন

নিম্নলিখিত স্ক্রিপ্ট সহ একটি ব্যাশ ফাইল তৈরি করুন যা বর্তমান তারিখ এবং সময় মুদ্রণ করে। এরপরে, $strVal ভেরিয়েবলটি একক উদ্ধৃতি এবং ডাবল উদ্ধৃতিগুলির মধ্যে সাবশেল স্ক্রিপ্টটি আবদ্ধ করে প্রিন্ট করা হয়।







#!/bin/bash

# সাবশেলে `তারিখ` কমান্ড প্রিন্ট করুন

প্রতিধ্বনি 'আজকে `তারিখ` '

# একটি স্ট্রিং ভেরিয়েবল সংজ্ঞায়িত করুন

strVal = 'ব্যাশ সাবশেল'

# একক উদ্ধৃতি ব্যবহার করে সাবশেলে ভেরিয়েবলটি প্রিন্ট করুন

প্রতিধ্বনি 'একক উদ্ধৃতির আউটপুট:' '$(echo $strVal)'

# ডাবল কোট ব্যবহার করে সাবশেলে ভেরিয়েবলটি প্রিন্ট করুন

প্রতিধ্বনি 'ডবল উদ্ধৃতির আউটপুট:' ' $(echo $strVal) '

স্ক্রিপ্ট চালানোর পরে নিম্নলিখিত আউটপুট উপস্থিত হয়। সাবশেল স্ক্রিপ্টটি একটি স্ট্রিং হিসাবে মুদ্রিত হয় যখন এটি একক উদ্ধৃতিগুলির সাথে আবদ্ধ থাকে। সাবশেল স্ক্রিপ্টটি কার্যকর করা হয় যখন এটি ডবল উদ্ধৃতিগুলির সাথে আবদ্ধ থাকে:





উদাহরণ 2: সাবশেল ব্যবহার করে বিশেষ এক্সটেনশনের সমস্ত ফাইল অনুসন্ধান করুন

নিম্নলিখিত স্ক্রিপ্ট সহ একটি ব্যাশ ফাইল তৈরি করুন যা ব্যবহারকারীর কাছ থেকে একটি ইনপুট হিসাবে ফাইল এক্সটেনশন নেয়। এরপরে, সেই নির্দিষ্ট এক্সটেনশনের সমস্ত ফাইল অনুসন্ধান করতে সাবশেলে 'ls' কমান্ডটি কার্যকর করা হয়।





#!/bin/bash

প্রতিধ্বনি -n 'ফাইল এক্সটেনশনের নাম লিখুন:'

# ফাইল এক্সটেনশনের নাম নিন যা অনুসন্ধান করা হবে

পড়া ext

# ইনপুট মান পরীক্ষা করুন

যদি [ [ $ext == '' ] ] ; তারপর

#প্রিন্ট ত্রুটি বার্তা

প্রতিধ্বনি 'কোন এক্সটেনশন দেওয়া হয় না।'

অন্য

প্রতিধ্বনি 'এর সাথে ফাইলের নাম $ext এক্সটেনশন:'

# প্রদত্ত এক্সটেনশন সহ সমস্ত ফাইলের নাম প্রিন্ট করুন

প্রতিধ্বনি ' $( echo `ls *.$ext` ) '

থাকা

'txt' ইনপুট দিয়ে স্ক্রিপ্ট চালানোর পরে নিম্নলিখিত আউটপুটটি উপস্থিত হয়। আউটপুট অনুযায়ী, বর্তমান অবস্থানে তিনটি পাঠ্য ফাইল বিদ্যমান:



খালি মান সহ স্ক্রিপ্ট চালানোর পরে নিম্নলিখিত আউটপুটটি উপস্থিত হয়:

উদাহরণ 3: সাবশেলে পাটিগণিত এক্সপ্রেশনটি চালান

নিম্নলিখিত স্ক্রিপ্ট সহ একটি ব্যাশ ফাইল তৈরি করুন যেখানে একই নামের ভেরিয়েবলটি প্রধান শেল এবং সাবশেলে ব্যবহৃত হয়। গাণিতিক অপারেশন প্রধান শেল এবং subshell সংজ্ঞায়িত করা হয়.

#!/bin/bash

# একটি প্যারেন্ট শেল ভেরিয়েবল সংজ্ঞায়িত করুন

সংখ্যা = 10

# প্যারেন্ট শেলের ভেরিয়েবলের উপর ভিত্তি করে ফলাফল প্রিন্ট করুন

( ( ফলাফল = $সংখ্যা + 5 ) )

প্রতিধ্বনি 'যোগফল $সংখ্যা +5= $ফলাফল '

# প্যারেন্ট শেলের একই নামের সাথে একটি সাবশেল ভেরিয়েবল তৈরি করুন

( সংখ্যা = বিশ ; ( ( ফলাফল = $সংখ্যা + 10 ) ) ; প্রতিধ্বনি 'যোগফল $সংখ্যা +5= $ফলাফল ' )

# আবার প্যারেন্ট শেলের ভেরিয়েবলের উপর ভিত্তি করে ফলাফল প্রিন্ট করুন

প্রতিধ্বনি 'যোগফল $সংখ্যা +5= $ফলাফল '

স্ক্রিপ্ট চালানোর পরে নিম্নলিখিত আউটপুট উপস্থিত হয়। প্রথম এবং শেষ আউটপুট প্রধান শেলের ফলাফল দেখায়। দ্বিতীয় আউটপুট সাবশেলের ফলাফল দেখায়। প্রধান শেলের পরিবর্তনশীলটি সাবশেলের পরিবর্তনশীল দ্বারা পরিবর্তিত হয় না:

উদাহরণ 4: সাবশেলে একাধিক কমান্ড চালান

নিম্নলিখিত স্ক্রিপ্টের সাথে একটি Bash ফাইল তৈরি করুন যা 'echo' কমান্ডের আউটপুটকে 'sed' কমান্ডে পাঠায় যা অন্য স্ট্রিং দিয়ে ম্যাচিং স্ট্রিং মান প্রতিস্থাপন করে। 'ইকো' কমান্ডের আউটপুট হল 'জাভাস্ক্রিপ্ট'। সুতরাং, এই মানটিকে 'জাভা' এবং 'জাভাস্ক্রিপ্ট' এর সাথে তুলনা করা হয়। যদি একটি মিল পাওয়া যায়, ম্যাচিং স্ট্রিংগুলি 'টাইপ' স্ট্রিং দ্বারা প্রতিস্থাপিত হয়।

#!/bin/bash

# একটি স্ট্রিং মান সংজ্ঞায়িত করুন

strVal = 'জাভাস্ক্রিপ্ট'

# মূল স্ট্রিং মান প্রিন্ট করুন

প্রতিধ্বনি 'তারের উপকারিতা: $strVal '

# সাবশেল মান প্রিন্ট করুন

প্রতিধ্বনি -n 'সাবশেল মান: '

প্রতিধ্বনি ' $(echo $strVal | sed 's|Java|JavaScript Type|') '

স্ক্রিপ্ট চালানোর পরে নিম্নলিখিত আউটপুট উপস্থিত হয়। আউটপুট অনুসারে, 'জাভা' স্ট্রিংটি 'টাইপ' স্ট্রিং দ্বারা প্রতিস্থাপিত হয়। সাবশেলের আউটপুট হল 'জাভাস্ক্রিপ্ট টাইপস্ক্রিপ্ট':


উপসংহার

প্রধান শেলকে প্রভাবিত না করেই সাবশেল ব্যবহার করে এক বা একাধিক কমান্ড বা স্ক্রিপ্ট চালানো যেতে পারে। সাবশেল ব্যবহারের উদ্দেশ্যগুলি একাধিক উদাহরণ ব্যবহার করে এই টিউটোরিয়ালে ব্যাখ্যা করা হয়েছে। বিভিন্ন ধরণের কাজ যেমন ফাইল অনুসন্ধান করা, সংখ্যার যোগফল গণনা করা, স্ট্রিংগুলি প্রতিস্থাপন করা ইত্যাদি প্রদত্ত উদাহরণগুলিতে সাবশেল দ্বারা করা হয়। সাবশেল ব্যবহারের ধারণাটি সঠিকভাবে প্রদর্শিত হয়েছে এবং নতুন ব্যাশ ব্যবহারকারীরা এখন এই টিউটোরিয়ালটি পড়ার পরে সাবশেল ব্যবহার করতে সক্ষম হবেন।