বাশে প্রোগ্রামিং - অংশ 3

পাড়া নিরাপদ আমাদের ধারণা আমরা প্রোগ্রামিংয়ের জন্য 2 খুব দরকারী সরঞ্জাম শিখব যা বাশের ক্ষেত্রে পুরোপুরি কার্যকর হয়। তৈরি করতে শিখুন ক্রিয়াকলাপ এবং সংজ্ঞায়িত পাইপলাইন প্রথমে জটিল মনে হতে পারে তবে তারপরে আমরা অপরিসীম দেখব উপযোগ তারা আমাদের সরবরাহ।

পাইপ

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

একটি পাইপ সাধারণত প্রতীক থাকার মাধ্যমে স্বীকৃত হয় যা মত প্রকাশের অনুমতি দেয়; যদিও এটি ডিফল্টরূপে ব্যবহৃত হয় তবে পাইপ তৈরির অন্যান্য উপায়ও রয়েছে।

উদাহরণ: সাম্প্রতিক কার্নেল বার্তা মুদ্রণ করুন

#dmesg আপনাকে সিস্টেম বুটের সময় সাম্প্রতিক কার্নেল বার্তা এবং লোড করা ড্রাইভারগুলি দেখতে দেয়; লেজ কোনও ফাইল বা # কম্যান্ডের শেষ অংশগুলি মুদ্রণ করে

dmesg | লেজ

যদিও আমরা যতটা চাই তত জটিল হতে পারি, তবে পাইপলাইনের মূল কাঠামোটি একটি কমান্ডের ফলাফলকে পরের ইনপুট হিসাবে ব্যবহার করতে দেয়, যা আমরা যদি পরপর পাইপ যুক্ত রাখি তবে নতুন কমান্ডের জন্য ইনপুট সরবরাহ করতে পারে।

ক্রিয়াকলাপ

ফাংশনগুলি হ'ল স্টেটমেন্টের বিবরণ যা একত্রে গোষ্ঠীভুক্ত করা হয়েছে যাতে এগুলি পুনর্লিখন না করে বেশ কয়েকবার কার্যকর করা যায়। এটা ভেবে সমান যে আমরা যখন এক ধরণের খাবার রান্না করতে শিখি তখন আমরা তার রেসিপিটি একটি শীটে লিখব এবং প্রতিবারই আমরা সেই খাবার রান্না করতে চাই আমরা একই রেসিপিটি দিয়ে একটি নতুন শীট পুনরায় লেখার পরিবর্তে রেসিপিটি পরামর্শ করি।

সম্ভবত ফাংশনগুলির মধ্যে সর্বাধিক গুরুত্বপূর্ণ বিষয় হ'ল প্যারামিটারগুলি পাস করার সম্ভাবনা, ডেটা যা তারা তাদের প্রক্রিয়া করতে এবং আউটপুট তৈরি করতে ব্যবহার করবে। এর গঠনটি নিম্নরূপ:

ফাংশন ফাংশন নাম {

প্রসেস

}

উদাহরণ: ফাংশন যা টিসিপি প্রোটোকলে কাজ করে এমন পরিষেবাগুলি দেখায়। আরও পাইপ প্রয়োগ করতে হয় তাও আমরা দেখতে পারি।

# আমরা একটি ফাংশন নাম সংজ্ঞায়িত করি, এটি আমাদের পছন্দ মতো হতে পারে।

ফাংশন পরিষেবাদি_টিসিপি {

# বিড়ালটি / etc / পরিষেবাদি ফোল্ডারের বিষয়বস্তুকে সম্মতি দেয় এবং প্রদর্শন করে, যা # এতে যুক্ত পোর্টগুলির সাথে সমস্ত পরিষেবা রয়েছে।

# প্রথম গ্রেপ তালিকাটি নিয়ে যায় এবং মন্তব্যগুলি সরিয়ে দেয় - যার ফলে আমরা ফলাফলটি উল্টে ফেলি

# দ্বিতীয় গ্রেপ কেবলমাত্র টিসিপি সম্পর্কিত তাদের দেখায়

বিড়াল / ইত্যাদি / পরিষেবা | grep –v "^ #" | গ্রেপ টিসিপি

}

যখন আমাদের এই ফাংশনটি সম্পাদন করা দরকার তখন কেবল আমাদের নামটি দিয়ে এটি কল করতে হবে:

tcp_services

এই ক্ষেত্রে এটি পরামিতি ছাড়াই কাজ করে; যদি এটি তাদের থাকে তবে আমাদের অবশ্যই এগুলি যুক্ত করতে হবে যাতে ফাংশনটি সঠিকভাবে কাজ করে, অন্যথায় ফাংশনটি সঠিকভাবে কাজ করবে না। রিটার্ন ব্যবহার প্রক্রিয়াটির ফলস্বরূপ কোনও ফাংশনকে কোনও মান ফেরত দেয়।

উদাহরণ: ইনপুট পরামিতিগুলির সাথে ফাংশন যা 2 সংখ্যার যোগফল গণনা করে।

#! / বিন / ব্যাশ
ফাংশন যোগফল ()
{
# এর সাহায্যে আমরা উদ্ধৃতিগুলির ভিতরে অপারেশন চালাতে পারি
"ফলাফল = $ 1 + $ 2" যাক

# পুনর্বার পূর্ণসংখ্যা মানটি ফেরত দিতে দেয়। একবার রিটার্ন কার্যকর হয়ে গেলে মানটি ভেরিয়েবল inside এর ভিতরে জমা হবে?
প্রত্যাবর্তন $ ফলাফল;
}
 
# সমষ্টি ফাংশনটি বলা হয় এবং আমরা 2 ইনপুট পরামিতিগুলি পাস করি।

2 3 যোগ করুন

# এর মান মুদ্রণ করে? প্রতিবেদনের সাথে উদ্ধৃতিতে ভেরিয়েবলের আসল মান মূল্যায়ন করা হয়
প্রতিধ্বনি -e "ফলাফল = $?";

<< পূর্ববর্তী অংশে যান

ধন্যবাদ জুয়ান কার্লোস অর্টিজ!


আপনার মন্তব্য দিন

আপনার ইমেল ঠিকানা প্রকাশিত হবে না। প্রয়োজনীয় ক্ষেত্রগুলি দিয়ে চিহ্নিত করা *

*

*

  1. ডেটার জন্য দায়বদ্ধ: মিগুয়েল অ্যাঞ্জেল গাটান
  2. ডেটার উদ্দেশ্য: নিয়ন্ত্রণ স্প্যাম, মন্তব্য পরিচালনা।
  3. আইনীকরণ: আপনার সম্মতি
  4. তথ্য যোগাযোগ: ডেটা আইনি বাধ্যবাধকতা ব্যতীত তৃতীয় পক্ষের কাছে জানানো হবে না।
  5. ডেটা স্টোরেজ: ওসেন্টাস নেটওয়ার্কস (ইইউ) দ্বারা হোস্ট করা ডেটাবেস
  6. অধিকার: যে কোনও সময় আপনি আপনার তথ্য সীমাবদ্ধ করতে, পুনরুদ্ধার করতে এবং মুছতে পারেন।

  1.   নিল পয়েন্টার তিনি বলেন

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

  2.   জুঙ্ক তিনি বলেন

    সত্য আমাকে সন্দেহের সাথে ছেড়ে দিয়েছে। যাইহোক, ফাংশনগুলির সাথে সমস্যা এড়াতে, ফাংশনটি কোনও মান বা স্ট্রিংটি ফিরিয়ে দিতে বা মুদ্রণ করতে চাইলে আমরা প্রতিচ্ছবি প্রতিধ্বনির সাথে প্রতিস্থাপন করতে পারি।

  3.   আবেল এস। মাউন্ট বিগ তিনি বলেন

    সত্য, এটি সমাধানের জন্য আপনি বিসি কমান্ডটি ব্যবহার করতে পারেন, যোগফলটিতে আপনি ব্যবহার করতে পারেন: ফলাফল = `প্রতিধ্বনি $ 1 + $ 2 | বিসি -ক্লু

  4.   লুইস মিগুয়েল তিনি বলেন

    ভাল,

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

    ধন্যবাদ এবং শুভেচ্ছা.

  5.   জোয়াকুইন তিনি বলেন

    আপনাকে অনেক ধন্যবাদ, আমি স্ক্রিপ্টগুলি দিয়ে শুরু করছি, এবং সত্যটি এটি খুব দরকারী যে আপনি নিজের জ্ঞান ভাগ করে নিচ্ছেন!
    শুভেচ্ছা

    1.    লিনাক্স ব্যবহার করা যাক তিনি বলেন

      ধন্যবাদ! আলিঙ্গন!
      পাবলো

  6.   CRISTHIAN তিনি বলেন

    সিন্ট্যাক্স - এ ত্রুটি, অপ্রত্যাশিত
    উদাহরণটি চালানোর চেষ্টা করার সময় আমি একটি ত্রুটি পেয়েছি, আমি একে একে একে একে অনুলিপি করেছি

    কি হতে পারে? আমি উবুন্টু 14.10 এ আছি