ইউনিক্সঃ সেল সাবস্টিটিউশন (Unix – Shell Substitution)

রিদওয়ান বিন শামীম

 

সাবস্টিটিউশন কী

একটি সেল সাবস্টিটিউশন প্রয়োগ করে তখন, যখন সেটি এমন পরিস্থিতি অনুধাবন করে যা এক বা একাধিক বিশেষ চিহ্ন(স্পেশাল ক্যারেকটার) ধারণ করে থাকে।

নিচের উদাহরণটি এমন একটি ক্ষেত্র যেখানে কোনও চলকের মুদ্রায়িত মান এর মূল মানের দ্বারা প্রতিস্থাপিত হয়েছে। একই সাথে "\n" একটি নতুন লাইনের মাধ্যমে প্রতিস্থাপিত হয়েছে।


#!/bin/sh
 
a=10
echo -e "Value of a is $a \n"

 

-e অপশন প্রয়োগে যা নিম্নোক্ত ফলাফল প্রদান করে,

Value of a is 10 এবং -e অপশন প্রয়োগ না করে ফলাফল হবে, Value of ais10\n ইকো কম্যান্ডের জন্য নিম্নোক্ত এস্কেপ সিকোয়েন্স প্রয়োগ করা যায়,

 

Escape Description
\\ backslash
\a alert (BEL)
\b backspace
\c suppress trailing newline
\f form feed
\n new line
\r carriage return
\t horizontal tab
\v vertical tab

ব্যাকস্লেস এস্কেপের ইন্টারপ্রিটেশন ডিজেবল রাখতে –E অপশন ও নতুন লাইনের অন্তর্ভুক্তি রহিত করতে –n ব্যবহার করা যায়।

 

কম্যান্ড সাবস্টিটিউশন

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

কম্যান্ড সাবস্টিটিউশন তখন কার্যকর হয় যখন নিম্নোক্ত নির্দেশনা দেয়া থাকে,


`command`

 

এসব ক্ষেত্রে সিঙ্গেল কোট ক্যারেকটারের পরিবর্তে ব্যাককোট ব্যবহার করতে হয়।

উদাহরণ

কম্যান্ড সাবস্টিটিউশন মূলত কম্যান্ডের আউটপুটকে চলকরূপে প্রকাশের জন্য ব্যবহৃত হয়,

নিচের প্রত্যেকটি উদাহরণ কম্যান্ড সাবস্টিটিউশনকে বিবৃত করে।


#!/bin/sh
 
DATE=`date`
echo "Date is $DATE"
 
USERS=`who | wc -l`
echo "Logged in user are $USERS"
 
UP=`date ; uptime`
echo "Uptime is $UP"

 

এই কোডগুলো যে ফলাফল দেখাবে তা হল,


Date is Thu Jul  2 03:59:57 MST 2009
Logged in user are 1
Uptime is Thu Jul  2 03:59:57 MST 2009
03:59:57 up 20 days, 14:03,  1 user,  load avg: 0.13, 0.07, 0.15

 

চলক সাবস্টিটিউশন

চলক সাবস্টিটিউশন চলকের অবস্থার প্রেক্ষিতে সেল প্রোগ্রামারকে এর মান ব্যবহারের সুযোগ দেয়।

সম্ভাব্য সাবস্টিটিউশন গুলো নিচের ছকে দেয়া হল,

প্রকার বর্ণনা
${var} var. এর মানকে প্রতিস্থাপিত করে
${var:-word} var শূন্য বা আনসেট হলে, var.এর জন্য শব্দ প্রতিস্থাপিত হয়। var এর মান অপরিবর্তিত থাকে।
${var:=word} var শূন্য বা আনসেট হলে, var শব্দের মান অনুসারে নির্ণীত হয়
${var:?message} var শূন্য বা আনসেট হলে, message standard error হিসেবে প্রতীয়মান হয়, চলক ঠিকমত প্রয়োগ করা হয়েছে কিনা এটি তা দেখে।
${var:+word} var সেট হলে শব্দ var এর দ্বারা প্রতিস্থাপিত হয় var এর মান অপরিবর্তিত থাকে।

 

উদাহরণ

নিচে এধরণের সাবস্টিটিউশনের উদাহরণ দেয়া হল,


#!/bin/sh
 
echo ${var:-"Variable is not set"}
echo "1 - Value of var is ${var}"
 
echo ${var:="Variable is not set"}
echo "2 - Value of var is ${var}"
 
unset var
echo ${var:+"This is default value"}
echo "3 - Value of var is $var"
 
var="Prefix"
echo ${var:+"This is default value"}
echo "4 - Value of var is $var"
 
echo ${var:?"Print this message"}
echo "5 - Value of var is ${var}"

 

উপরের কোডগুলো যে ফলাফল দেখাবে তা হল,


Variable is not set
1 - Value of var is
Variable is not set
2 - Value of var is Variable is not set
 
3 - Value of var is
This is default value
4 - Value of var is Prefix
Prefix
5 - Value of var is Prefix

 

Permanent link to this article: http://bangla.sitestree.com/%e0%a6%87%e0%a6%89%e0%a6%a8%e0%a6%bf%e0%a6%95%e0%a7%8d%e0%a6%b8%e0%a6%83-%e0%a6%b8%e0%a7%87%e0%a6%b2-%e0%a6%b8%e0%a6%be%e0%a6%ac%e0%a6%b8%e0%a7%8d%e0%a6%9f%e0%a6%bf%e0%a6%9f%e0%a6%bf%e0%a6%89%e0%a6%b6/

Leave a Reply