ভূমিকা
ব্যাশ স্ক্রিপ্টে, কমান্ডের আউটপুট সংরক্ষণ করে এবং পরে ব্যবহার করে ভেরিয়েবলে একটি কমান্ডের আউটপুট নির্ধারণ করা সুবিধাজনক হতে পারে।
এই সংক্ষিপ্ত গাইডে, আমরা দেখব কিভাবে আপনি একটি কমান্ডের আউটপুটকে Bash-এ ভেরিয়েবল হিসেবে সংরক্ষণ করতে পারেন।
ভেরিয়েবল সেট আপ করার মূল বিষয়গুলি৷
একটি ভেরিয়েবল হিসাবে একটি কমান্ডের আউটপুট সংরক্ষণের মাধ্যমে অর্জন করা হয় কমান্ড প্রতিস্থাপন. কমান্ড প্রতিস্থাপন হল একটি মোড়ক যা a এ কমান্ডটি কার্যকর করে সাবশেল পরিবেশ, এবং আবৃত কমান্ডটিকে পরিবেশের আদর্শ আউটপুট দিয়ে প্রতিস্থাপন করে যেখানে কমান্ডটি চালানো হয়েছিল। এই আউটপুটটি পরে রেফারেন্স করা যেতে পারে, যদি একটি রেফারেন্স ভেরিয়েবলের সাথে সংযুক্ত থাকে!
কমান্ড প্রতিস্থাপন ব্যাকটিক্স বা বন্ধনী সহ ডলার চিহ্নের মাধ্যমে অর্জন করা যেতে পারে:
`command`
$(command)
কিনা তা নিয়ে বিতর্ক আছে 'আদেশ' (ব্যাকটিক্স) বা $(কমান্ড) (ডলার চিহ্ন এবং বন্ধনী) "সর্বোত্তম অনুশীলন" হিসাবে ব্যবহার করা উচিত। $(command)
নেস্টিংয়ের ক্ষেত্রে ভাল কাজ করে এবং কিছু ক্ষেত্রে পঠনযোগ্যতা উন্নত করে, তবে আপনি চলমান উদাহরণগুলিতে যেকোন একটি সিনট্যাক্সের সাথে যেতে পারেন।
বলা হচ্ছে - Bash-এ একটি ভেরিয়েবলে একটি কমান্ডের আউটপুট বরাদ্দ করা ততটা সহজ:
VARIABLE=$(command)
echo "${VARIABLE}"
চলমান ${variable}
হিসাবে পরিচিত হয় পরামিতি সম্প্রসারণ, এবং একটি রেফারেন্স ভেরিয়েবলের সাথে সম্পর্কিত মান মূল্যায়ন এবং আনয়ন করতে ব্যবহৃত হয়।
আসুন এখন আউটপুট রঙ পরিবর্তন করার জন্য একটি কমান্ডের জন্য একটি ভেরিয়েবল সেটআপ করার সহজ উদাহরণটি একবার দেখে নেওয়া যাক:
#!/bin/bash
GREEN=$(tput setaf 2)
echo "${GREEN}Please"
ORANGE=$(tput setaf 9)
echo "${ORANGE}Visit"
echo "${GREEN}Paris"
স্নিপেটে, আমরা ব্যবহার করেছি tput
কমান্ড দেয় এবং রঙিন টেক্সট মুদ্রণ করার জন্য সেই কমান্ডগুলির প্রত্যাবর্তিত মান নির্ধারণ করে। দ্য setaf
অগ্রভাগের রঙ পরিবর্তন করে, এবং 3 (সবুজ) এবং 9 (কমলা) হল রঙের কোড।
এখন আমরা অন্য একটি উদাহরণে চলে যাব যেখানে বিভিন্ন কমান্ডের জন্য ভেরিয়েবল সেট আপ করার জন্য একাধিক শর্ত রয়েছে:
#!/bin/bash
PERSON=$(whoami)
echo -e "Hey ${PERSON}! I am Charlien"
DETAILS=$(uname -a)
echo -e "You're running this script on:n${DETAILS}n"
DATES=$(date)
echo -e "The script is being run on:n${DATES}n"
CREATE=$(touch $(date +"%d%m%Y").txt)
echo -e "A text file logging this run is created.${CREATE}n"
LOCATION=$(ls
-l *txt)
echo -e "Saved text file at: ${LOCATION}"
উপরের স্ক্রিপ্টে, the whoami
কমান্ড বর্তমান ব্যবহারকারীর ব্যবহারকারীর নাম প্রদান করে। দ্য uname -a
সিস্টেম তথ্য প্রদান করে, এবং date
বর্তমান সময় এবং তারিখ প্রদান করে।
বিঃদ্রঃ: আমরা একটি একক নেস্টেড কলে একাধিক কমান্ড যোগ করে পরিবর্তনশীল অ্যাসাইনমেন্ট চেইন করতে পারি। দ্য CREATE
ভেরিয়েবল এর আউটপুট ধারণ করে touch
কমান্ড, যা ঘুরে একটি ফাইল তৈরি করে এবং ফাইলের নামটি আউটপুটে সেট করে date +"%d%m%Y
কমান্ড।
সেরা-অভ্যাস, শিল্প-স্বীকৃত মান এবং অন্তর্ভুক্ত চিট শীট সহ গিট শেখার জন্য আমাদের হ্যান্ডস-অন, ব্যবহারিক গাইড দেখুন। গুগলিং গিট কমান্ড এবং আসলে বন্ধ করুন শেখা এটা!
অবশেষে, আমরা একটি যোগ করুন multiline
একটি ব্যাকস্ল্যাশ যোগ করে কমান্ড পরিবর্তনশীল অ্যাসাইনমেন্ট ধারণা ()
মধ্যে ls
হুকুম -l
ব্যবহার করে শুধুমাত্র টেক্সট ফাইল প্রদর্শন করতে পতাকা *.txt
. ব্যাকস্ল্যাশ হল একটি এস্কেপ ক্যারেক্টার যা শেলকে পরবর্তী অক্ষরটিকে ব্যাখ্যা না করার জন্য জানায়।
মধ্যে echo
কমান্ড, আমরা যোগ -e
বিশেষ অক্ষর ব্যবহার করার জন্য পতাকা, যেমন, n
(নতুন লাইন), নতুন লাইনে আউটপুট প্রিন্ট করতে।
স্ক্রিপ্টটি কার্যকর করার পরে আমরা নিম্নলিখিত ফলাফল পাই:
$ ./variable.sh
উপসংহার
এই সংক্ষিপ্ত গাইডে, আমরা দেখেছি কিভাবে আপনি একটি কমান্ডের আউটপুট Bash-এ একটি ভেরিয়েবলে সেট করতে পারেন। আমরা জন্য সিনট্যাক্সের মধ্যে পার্থক্য কটাক্ষপাত করেছি কমান্ড প্রতিস্থাপন, এর পঠনযোগ্যতার উন্নতি লক্ষ্য করে $(command)
ব্যাকটিক-ভিত্তিক প্রতিস্থাপনের উপরে। তারপর, আমরা সাধারণ অ্যাসাইনমেন্ট এবং চেইনড/নেস্টেড আউটপুট অ্যাসাইনমেন্ট উভয়ের বেশ কয়েকটি উদাহরণ দেখেছি।