শাঁস ভেরিয়েবলগুলি কীভাবে আওককে অনুমতি দেবেন - পার্ট 11


যখন আমরা শেল স্ক্রিপ্টগুলি লিখি, আমরা সাধারণত আমাদের স্ক্রিপ্টগুলিতে অন্যান্য ছোট প্রোগ্রাম বা কমান্ড যেমন আওক অপারেশনগুলিকে অন্তর্ভুক্ত করি। আউকের ক্ষেত্রে, আমাদের শেল থেকে আওক অপারেশনে কিছু মান পাস করার উপায়গুলি খুঁজে বের করতে হবে।

এটি Awk কমান্ডের মধ্যে শেল ভেরিয়েবল ব্যবহার করে করা যেতে পারে, এবং সিরিজের এই অংশে, আমরা Awk কে শেল ভেরিয়েবলগুলি ব্যবহার করার অনুমতি দিতে পারি যাতে আমরা Awk কমান্ডগুলিতে পাস করতে চাই এমন মান থাকতে পারে।

শেল ভেরিয়েবলগুলি ব্যবহার করতে আপনি Awk সক্ষম করতে পারেন এমন দুটি উপায় সম্ভবত:

1. শেল উদ্ধৃতি ব্যবহার

আস্ক কমান্ডের শেল ভেরিয়েবলের মান প্রতিস্থাপনের জন্য আপনি কীভাবে শেল উদ্ধৃতি ব্যবহার করতে পারেন তা উদাহরণস্বরূপ উদাহরণের জন্য একটি উদাহরণ দেখুন take এই উদাহরণে, আমরা ফাইল/ইত্যাদি/পাসডাব্লুডিতে একটি ব্যবহারকারীর নাম অনুসন্ধান করতে, ব্যবহারকারীর অ্যাকাউন্টের তথ্য ফিল্টার এবং মুদ্রণ করতে চাই।

অতএব, আমরা নিম্নলিখিত সামগ্রী সহ একটি টেস্ট.শ স্ক্রিপ্ট লিখতে পারি:

#!/bin/bash

#read user input
read -p "Please enter username:" username

#search for username in /etc/passwd file and print details on the screen
cat /etc/passwd | awk "/$username/ "' { print $0 }'

এরপরে, ফাইলটি সংরক্ষণ করুন এবং প্রস্থান করুন।

উপরে টেস্ট.শ স্ক্রিপ্টে আওক কমান্ডের ব্যাখ্যা:

cat /etc/passwd | awk "/$username/ "' { print $0 }'

"/ $ব্যবহারকারীর নাম /" - ওভ কমান্ডে শেল ভেরিয়েবল ব্যবহারকারীর মানের বিকল্প হিসাবে ব্যবহৃত শেল উদ্ধৃতি। ব্যবহারকারীর নামটি ফাইল/ইত্যাদি/পাসডাব্লুডিতে অনুসন্ধান করা প্যাটার্ন।

নোট করুন যে ডাবল উদ্ধৃতিটি আওক স্ক্রিপ্টের বাইরে, ‘{মুদ্রণ $0}’

তারপরে স্ক্রিপ্টটি সম্পাদনযোগ্য করুন এবং এটি নিম্নরূপে চালান:

$ chmod  +x  test.sh
$ ./text.sh 

স্ক্রিপ্টটি চালানোর পরে, আপনাকে একটি ব্যবহারকারী নাম লিখতে, একটি বৈধ ব্যবহারকারীর নাম লিখুন এবং এন্টার টিপুন। আপনি নীচে হিসাবে/ইত্যাদি/পাসডাব্লুডি ফাইল থেকে ব্যবহারকারীর অ্যাকাউন্টের বিবরণ দেখতে পাবেন:

২.ওউকের ভেরিয়েবল অ্যাসাইনমেন্ট ব্যবহার করা

উপরের এক পদ্ধতির তুলনায় এই পদ্ধতিটি অনেক সহজ এবং ভাল। উপরের উদাহরণ বিবেচনা করে, আমরা কাজটি সম্পাদন করার জন্য একটি সাধারণ কমান্ড চালাতে পারি। এই পদ্ধতির অধীনে, আমরা একটি ওক ভেরিয়েবলকে শেল ভেরিয়েবল বরাদ্দ করতে -v বিকল্পটি ব্যবহার করি।

প্রথমত, একটি শেল ভেরিয়েবল তৈরি করুন, ব্যবহারকারীর নাম এবং এটিকে নাম দিন যা আমরা /etc/passswd ফাইলে অনুসন্ধান করতে চাই:

username="aaronkilik"

তারপরে নীচের কমান্ডটি টাইপ করুন এবং এন্টার টিপুন:

# cat /etc/passwd | awk -v name="$username" ' $0 ~ name {print $0}'

উপরের কমান্ডের ব্যাখ্যা:

  1. -v - একটি ভেরিয়েবল ঘোষণা করার জন্য জঞ্জাল বিকল্প
  2. ব্যবহারকারীর নাম - হ'ল শেল পরিবর্তনশীল
  3. নাম - এটি আওক ভেরিয়েবল

আসুন স্ক্রিপ্টের অভ্যন্তরে $0 ~ নাম <কেড> $0 ~ নাম {মুদ্রণ $0} এ সাবধানতার সাথে নজর দেওয়া যাক। মনে রাখবেন, যখন আমরা এই সিরিজের ৪ র্থ অংশে আউক তুলনা অপারেটরগুলি কভার করেছি, তখন তুলনা অপারেটরগুলির মধ্যে একটির মান ছিল ~ প্যাটার্ন, যার অর্থ: মানটি যদি প্যাটার্নের সাথে মেলে তবে সত্য।

Awk এ পাইপ দেওয়া ক্যাট কমান্ডের আউটপুট ($0) (আরোনকিলিক) প্যাটার্নটির সাথে মেলে যা ফলস্বরূপ, আমরা যে নামটি/ইত্যাদি/পাসউইডিতে অনুসন্ধান করছি, ফলস্বরূপ, তুলনা অপারেশন সত্য। ব্যবহারকারীর অ্যাকাউন্ট সম্পর্কিত তথ্য থাকা লাইনটি তখন স্ক্রিনে মুদ্রিত হয়।

উপসংহার

আমরা আওক বৈশিষ্ট্যগুলির একটি গুরুত্বপূর্ণ বিভাগটি কভার করেছি, যা আমাদের ওকে কমান্ডের মধ্যে শেল ভেরিয়েবল ব্যবহার করতে সহায়তা করতে পারে। অনেক সময়, আপনি শেল স্ক্রিপ্টগুলির মধ্যে ছোট ছোট অ্যাওক প্রোগ্রাম বা কমান্ড লিখবেন এবং অতএব, আপনাকে কীভাবে আওক কমান্ডের মধ্যে শেল ভেরিয়েবল ব্যবহার করবেন সে সম্পর্কে একটি পরিষ্কার ধারণা থাকা দরকার।

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