রিদওয়ান বিন শামীম
প্রত্যেক সেল সমর্থিত কিছু অপারেটর থাকে। আমরা এখানে ডিফল্ট সেল (Bourne) নিয়ে আলোচনা করব।বর্ন সেলের গুরুত্বপূর্ণ যে অপারেটরগুলো নিয়ে এখানে আলোচনা করা হবেঃ
- এরিথমেটিক অপারেটর
- রিলেশনাল অপারেটর
- বুলিয়েন অপারেটর
- স্ট্রিং অপারেটর
- ফাইল টেস্ট অপারেটর
বর্ন সেলের নিজের এরিথমেটিক কাজ সম্পাদনের কৌশল নেই কিন্তু তারা বাইরের প্রোগ্রাম যেমন awk বা expr ব্যবহার করে,
নিচের উদাহরণে দুটি সংখ্যা যোগ করার প্রক্রিয়া দেখানো হল,
#!/bin/sh val=`expr 2 + 2` echo "Total value : $val"
এটি যে ফলাফল দেবে তা হল,
Total value:4
এখানে কয়েকটি ব্যপার মনে রাখা দরকার,
- অপারেটর ও এক্সপ্রেশনের মাঝে স্পেস থাকতে হয়,
- সম্পূর্ণ এক্সপ্রেশন ইনভার্টেড কমা দ্বারা আবদ্ধ করা থাকে
এরিথমেটিক অপারেটর
বর্ণ সেল যেসব এরিথমেটিক অপারেটর সমর্থন করে তাদের নিচের ছকে দেয়া হল।
a চলকের মান ১০ ও b চলকের মান ২০ধরে নিচের ছকে আমরা দেখি,
অপারেটর | উদাহরণ |
+ | `expr $a + $b` হয় 30 |
– | `expr $a – $b` থেকে পাই -10 |
* | `expr $a \* $b` থেকে পাই 200 |
/ | `expr $b / $a` থেকে পাই 2 |
% | `expr $b % $a` থেকে পাই 0 |
= | a=$b এটি এই বুঝায় যে bএর মান a এর মানের মধ্যে আছে। |
== | [ $a == $b ] এর রিটার্ন মিথ্যা |
!= | [ $a != $b ] রিটার্ন সত্য |
এখানে একটি বিষয় খুব গুরুত্বপূর্ণ যে, কন্ডিশনাল এক্সপ্রেশনকে স্কয়ার ব্র্যাকেটের মধ্যে দুপাশে একটি করে স্পেস দিয়ে আবদ্ধ রাখতে হয়। যেমন,
[ $a == $b ] সঠিক।
[$a==$b] ভুল।
সব এরিথমেটিক হিসাব লম্বা পূর্ণসংখ্যার মাধ্যমে করা হয়।
রিলেশনাল অপারেটর
বর্ণ সেল যেসব রিলেশনাল অপারেটর সমর্থন করে তাদের নিচের ছকে দেয়া হল।
অপারেটর | উদাহরণ |
-eq | [ $a -eq $b ] বিবৃতি সত্য নয় |
-ne | [ $a -ne $b ] বিবৃতি সত্য |
-gt | [ $a -gt $b ] বিবৃতি সত্য নয় |
-lt | [ $a -lt $b ] বিবৃতি সত্য |
-ge | [ $a -ge $b ] বিবৃতি সত্য নয় |
-le | [ $a -le $b ] বিবৃতি সত্য |
এখানে একটি বিষয় খুব গুরুত্বপূর্ণ যে, কন্ডিশনাল এক্সপ্রেশনকে স্কয়ার ব্র্যাকেটের মধ্যে দুপাশে একটি করে স্পেস দিয়ে আবদ্ধ রাখতে হয়। যেমন,
[ $a <= $b ] সঠিক।
[$a <= $b] ভুল।
বুলিয়েন অপারেটর
বর্ণ সেল যেসব বুলিয়েন অপারেটর সমর্থন করে তাদের নিচের ছকে দেয়া হল।
a চলকের মান ১০ ও b চলকের মান ২০ধরে নিচের ছকে আমরা দেখি,
অপারেটর | উদাহরণ |
! | [ ! false ] বিবৃতি সত্য |
-o | [ $a -lt 20 -o $b -gt 100 ] বিবৃতি সত্য |
-a | [ $a -lt 20 -a $b -gt 100 ] বিবৃতি মিথ্যা |
স্ট্রিং অপারেটর
বর্ণ সেল যেসব স্ট্রিং অপারেটর সমর্থন করে তাদের নিচের ছকে দেয়া হল।
a চলকের মান “abc” ও b চলকের মান “efg”ধরে নিচের ছকে আমরা দেখি,
অপারেটর | উদাহরণ |
= | [ $a = $b ] মিথ্যা বিবৃতি |
!= | [ $a != $b ] সত্য বিবৃতি |
-z | [ -z $a ] মিথ্যা বিবৃতি |
-n | [ -z $a ] সত্য বিবৃতি |
str | [ $a ] সত্য বিবৃতি |
ফাইল টেস্ট অপারেটর
ইউনিক্স ফাইলের বিভিন্ন প্রপার্টি টেস্টের জন্য যে অপারেটর সেগুলো নিচে দেয়া হয়েছে।
১০০ বাইটের “test” নামের চলক ফাইলের জন্য টেস্ট অপারেটরঃ
অপারেটর | উদাহরণ |
-b file | [ -b $file ] বিবৃতি সত্য |
-c file | [ -c $file ] বিবৃতি সত্য নয় |
-d file | [ -d $file ] বিবৃতি সত্য নয় |
-f file | [ -f $file ] বিবৃতি সত্য |
-g file | [ -g $file ] বিবৃতি সত্য নয় |
-k file | [ -k $file ] বিবৃতি সত্য নয় |
-p file | [ -p $file ] বিবৃতি সত্য নয় |
-t file | [ -t $file ] বিবৃতি সত্য নয় |
-u file | [ -u $file ] বিবৃতি সত্য নয় |
-r file | [ -r $file ] বিবৃতি সত্য |
-w file | [ -w $file ] বিবৃতি সত্য |
-x file | [ -x $file ] বিবৃতি সত্য |
-s file | [ -s $file ] বিবৃতি সত্য |
-e file | [ -e $file ] বিবৃতি সত্য |