কম্পিউটার

সোর্স কমান্ডের সাহায্যে ব্যাশে ফাংশন এবং ভেরিয়েবল আমদানি করুন

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

আপনার শেল পরিবেশ প্রভাবিত করার অনেক উপায় আছে। আপনি কনফিগারেশন ফাইলে পরিবর্তন করতে পারেন, যেমন ~/.bashrc এবং ~/.profile , আপনি স্টার্টআপে পরিষেবাগুলি চালাতে পারেন, এবং আপনি আপনার নিজস্ব কাস্টম কমান্ড তৈরি করতে পারেন বা আপনার নিজস্ব ব্যাশ ফাংশন স্ক্রিপ্ট করতে পারেন৷

উৎস সহ আপনার পরিবেশে যোগ করুন

ব্যাশ (অন্যান্য কিছু শেলের সাথে) একটি বিল্ট-ইন কমান্ড আছে যাকে বলা হয় source . এবং এখানে এটি বিভ্রান্তিকর হতে পারে:source . কমান্ডের মতো একই ফাংশন সম্পাদন করে (হ্যাঁ, এটি শুধুমাত্র একটি একক বিন্দু), এবং এটি না৷ একই source Tcl হিসাবে কমান্ড (আপনি man source টাইপ করলে যা আপনার স্ক্রিনে আসতে পারে ) অন্তর্নির্মিত source কমান্ড আপনার PATH এ নেই সব, আসলে. এটি একটি কমান্ড যা ব্যাশের একটি অংশ হিসাবে অন্তর্ভুক্ত করা হয়েছে এবং এটি সম্পর্কে আরও তথ্য পেতে, আপনি help source টাইপ করতে পারেন .

. কমান্ড POSIX-সঙ্গতিপূর্ণ। source কমান্ড POSIX দ্বারা সংজ্ঞায়িত নয় কিন্তু . এর সাথে বিনিময়যোগ্য আদেশ৷

Bash help অনুযায়ী , source কমান্ড আপনার বর্তমান শেলের মধ্যে একটি ফাইল চালায়। "আপনার বর্তমান শেলের মধ্যে" ধারাটি তাৎপর্যপূর্ণ, কারণ এর অর্থ এটি একটি সাব-শেল চালু করে না; অতএব, আপনি source দিয়ে যা কিছু চালান এর মধ্যে ঘটে এবং আপনার বর্তমানকে প্রভাবিত করে পরিবেশ।

কিভাবে source অন্বেষণ করার আগে আপনার পরিবেশকে প্রভাবিত করতে পারে, source চেষ্টা করুন এটি প্রত্যাশিত হিসাবে কোড কার্যকর করে তা নিশ্চিত করার জন্য একটি পরীক্ষা ফাইলে। প্রথমে, একটি সাধারণ ব্যাশ স্ক্রিপ্ট তৈরি করুন এবং এটিকে hello.sh নামে একটি ফাইল হিসাবে সংরক্ষণ করুন :

#!/usr/bin/env bash
ইকো "হ্যালো ওয়ার্ল্ড"

source ব্যবহার করে , আপনি এক্সিকিউটেবল বিট সেট না করেও এই স্ক্রিপ্ট চালাতে পারেন:

$ source hello.sh
হ্যালো ওয়ার্ল্ড

এছাড়াও আপনি বিল্ট-ইন . ব্যবহার করতে পারেন একই ফলাফলের জন্য কমান্ড:

<পূর্ব>$। hello.sh
হ্যালো ওয়ার্ল্ড

source এবং . কমান্ড সফলভাবে পরীক্ষা ফাইলের বিষয়বস্তু সম্পাদন করে।

ভেরিয়েবল সেট করুন এবং ফাংশন আমদানি করুন

আপনি source ব্যবহার করতে পারেন আপনার শেল পরিবেশে একটি ফাইল "আমদানি" করতে, ঠিক যেমন আপনি include ব্যবহার করতে পারেন একটি লাইব্রেরি বা import রেফারেন্স করতে C বা C++ এ কীওয়ার্ড একটি মডিউল আনতে পাইথনে কীওয়ার্ড। এটি source-এর সবচেয়ে সাধারণ ব্যবহারগুলির মধ্যে একটি , এবং এটি .bashrc-এ একটি সাধারণ ডিফল্ট অন্তর্ভুক্তি source-এ ফাইল .bash_aliases নামে একটি ফাইল যাতে আপনি লগ ইন করার সময় আপনার সংজ্ঞায়িত যেকোনো কাস্টম উপনাম আপনার পরিবেশে আমদানি করা হয়।

এখানে একটি ব্যাশ ফাংশন আমদানির একটি উদাহরণ। প্রথমে myfunctions নামে একটি ফাইলে একটি ফাংশন তৈরি করুন . এটি আপনার সর্বজনীন IP ঠিকানা এবং আপনার স্থানীয় IP ঠিকানা প্রিন্ট করে:

ফাংশন myip() {
      curl https://icanhazip.com    

      ip addr | grep inet$IP | \
      cut -d"/" -f 1 | \
      grep -v 127\.0 | \
      grep -v \:\:1 | \
      awk '{$1=$1};1'
}

আপনার শেলের মধ্যে ফাংশনটি আমদানি করুন:

$ source myfunctions 

আপনার নতুন ফাংশন পরীক্ষা করুন:

$ myip
93.184.216.34
inet 192.168.0.23
inet6 fbd4:e85f:49c:2121:ce12:ef79:0e77:59d1
inet 10.38
প্রাক>

উৎস অনুসন্ধান করুন

আপনি যখন source ব্যবহার করেন ব্যাশে, এটি আপনার উল্লেখ করা ফাইলের জন্য আপনার বর্তমান ডিরেক্টরি অনুসন্ধান করে। এটি সমস্ত শেলগুলিতে ঘটে না, তাই আপনি যদি ব্যাশ ব্যবহার না করেন তবে আপনার ডকুমেন্টেশন পরীক্ষা করুন৷

ব্যাশ যদি এক্সিকিউট করার জন্য ফাইল খুঁজে না পায়, তাহলে এটি আপনার PATH সার্চ করে পরিবর্তে. আবার, এটি সমস্ত শেলগুলির জন্য ডিফল্ট নয়, তাই আপনি যদি ব্যাশ ব্যবহার না করেন তবে আপনার ডকুমেন্টেশন পরীক্ষা করুন৷

এই দুটিই ব্যাশে চমৎকার সুবিধার বৈশিষ্ট্য। এই আচরণটি আশ্চর্যজনকভাবে শক্তিশালী কারণ এটি আপনাকে আপনার ড্রাইভে একটি কেন্দ্রীভূত অবস্থানে সাধারণ ফাংশনগুলি সঞ্চয় করতে দেয় এবং তারপরে আপনার পরিবেশকে একটি সমন্বিত উন্নয়ন পরিবেশের (IDE) মতো আচরণ করতে দেয়। আপনার ফাংশনগুলি কোথায় সংরক্ষণ করা হবে তা নিয়ে আপনাকে চিন্তা করতে হবে না, কারণ আপনি জানেন যে সেগুলি আপনার স্থানীয় সমতুল্য /usr/include , তাই আপনি যেখানেই থাকুন না কেন আপনি যখন তাদের উৎস করেন, ব্যাশ তাদের খুঁজে পায়।

উদাহরণস্বরূপ, আপনি ~/.local/include নামে একটি ডিরেক্টরি তৈরি করতে পারেন সাধারণ ফাংশনগুলির জন্য একটি স্টোরেজ এলাকা হিসাবে এবং তারপর কোডের এই ব্লকটি আপনার .bashrc এ রাখুন ফাইল:

আমি $HOME/.local/include/*;
  সোর্স $i
সম্পন্ন

এটি ~/.local/include-এ কাস্টম ফাংশন ধারণকারী যেকোনো ফাইল "আমদানি করে" আপনার শেল পরিবেশে।

Bash হল একমাত্র শেল যা বর্তমান ডিরেক্টরি এবং আপনার PATH উভয়ই অনুসন্ধান করে যখন আপনি source ব্যবহার করেন অথবা . আদেশ৷

ওপেন সোর্সের জন্য সোর্স ব্যবহার করা

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


  1. টার্মিনালে আরও স্মার্ট কাজ করার জন্য ব্যাশ টিপস এবং ট্রিকস

  2. লিনাক্সে ঘড়ির কমান্ড কীভাবে ব্যবহার করবেন, উদাহরণ সহ

  3. 15 দরকারী ব্যাশ শেল বিল্ট-ইন কমান্ড (উদাহরণ সহ)

  4. 15টি উদাহরণ সহ আলটিমেট ব্যাশ অ্যারে টিউটোরিয়াল