ব্যাশ ব্যবহার করে আপনার নিজস্ব স্ক্রিপ্ট তৈরি করুন

লিনাক্স শেখা

আমরা যে লিনাক্স বিতরণ ব্যবহার করছি তা নির্বিশেষে, সন্দেহ নেই যে এই সিস্টেমটির ব্যবহারের সাথে সাথেই আমার প্রিয় উবুন্টু get অটোমেশন প্রয়োজন। এটি বলতে হয়: আমাদের তৈরি করুন নিজস্ব কমান্ড যা একটি ব্যক্তিগত উপায়ে নির্দিষ্ট আদেশগুলি সম্পাদন করে। এই প্রয়োজনীয়তা নির্দিষ্ট কারণে হতে পারে:

  • বাক্যবিন্যাসকে সরল করুন কমান্ডগুলি যা আমরা সাধারণত সম্পাদন করি of
  • যে কোনও পদক্ষেপ কভার করে এমন পদক্ষেপ নিন এটি সিস্টেমে আগে থেকে দেখা যায় না need অপারেশনাল
  • সিকোয়েন্স অর্ডার যে আমরা সুনিশ্চিতভাবে পুনরাবৃত্তি।

যদিও কোনও ডিরেক্টরি স্ক্রিপ্ট / যে কোনও ডিরেক্টরিতে চালানো যেতে পারে, এটি সাধারণত হয় এই স্ক্রিপ্টগুলি হোস্ট করার জন্য একটি ডিরেক্টরি তৈরি করুন। আমার ক্ষেত্রে:

$ mkdir /home/pedro/.bin

আমি এটা বিশ্বাস করি ডিরেক্টরি (নামের সামনে পিরিয়ড নেতৃত্বে লুকানো) আমি সেখানে সমস্ত স্ক্রিপ্ট ব্যবহার করি hold ডিরেক্টরিটির নামটি গোপন করা ছাড়া অন্য কোনও অর্থ নেই - যদি না অন্যথায় স্পষ্টভাবে নির্দিষ্ট করা হয় - গ্রাফিকাল মোডে ফাইল ভিউয়ার থেকে / হোম / পেড্রো দেখার সময় উপস্থিত হবে না.

এখন আপনি করতে হবে লিনাক্সকে জানিয়ে দিন যে এটিও সেখানে দেখতে হবে (/home/pedro/.bin) টার্মিনাল থেকে কার্যকর করা আদেশগুলি।

$ PATH=$PATH;/home/pedro/.bin

এই পদ্ধতিতে সিস্টেমটি আমাদের আদেশগুলি সেখানে সন্ধান করবে আমরা অধিবেশন বন্ধ না হওয়া পর্যন্ত. এই সমিতি স্থায়ী করতে:

$ sudo nano /etc/environment

এবং আমরা যুক্ত

:/home/pedro/.bin

PATH লাইন শেষে, যে ডিরেক্টরিটি আমরা অন্তর্ভুক্ত করছি তার ঠিকানার আগে কোলনটি ভুলে যাওয়া খুব গুরুত্বপূর্ণ নয়, যেহেতু এটি সংযোজন প্রক্রিয়া mechanism.

আমাদের প্রথম ধাপে স্ক্রিপ্ট

আমরা আমাদের ফাইলটি তৈরি করি, এটি আমার ক্ষেত্রে:

$ touch ~/.bin/donde

এবং এটি সম্পাদনা করতে, আপনি আপনার পছন্দসই সম্পাদক ব্যবহার করতে পারেন বা এই ইঙ্গিতটি অনুসরণ করতে পারেন:

$ gedit ~/.bin/donde &

এবং আমরা নিম্নলিখিত বিষয়বস্তু যুক্ত:

#!/usr/bin/env bash

if [ $# -lt 1 ];
then
    echo "Necesitas pasar un parámetro"
else
    whereis $1
fi

স্ক্রিপ্ট বিশ্লেষণ

আমাদের প্রথম কল লাইন «শেবাং# (#! / ইউএসআর / বিন / এনভ বাশ) লিনাক্স রিপোর্ট করতে বলুন যেখানে ব্যাশ শেলটি অবস্থিত এবং তা যা বাশের প্রয়োজনীয়তা অনুসারে কার্যকর করা হয়। এই সতর্কতা এটি নিশ্চিত করা সুবিধাজনক আমাদের স্ক্রিপ্টগুলি যে কোনও ইনস্টলেশনতে কাজ করে। আরেকটি সম্ভব শেবাং সে হেসেছিল:

#!/bin/bash

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

তৃতীয় লাইন: আপনি দেখতে পাচ্ছেন, দ্বিতীয় লাইনটি যদি একটি হয়। অক্ষর বাশ জন্য «$#« আমরা কমান্ড লাইন থেকে যে পরামিতিগুলি পেরিয়ে যাচ্ছি তা ধারণ করুন। অতএব, »যদি [-# -সামান্য 1]; আক্ষরিক অর্থ "যদি পরামিতির সংখ্যা 1 এর চেয়ে কম হয়".

চতুর্থ লাইন: তারপর (আক্ষরিকভাবে ইংরেজি থেকে অনুবাদ: তারপরে), এখানে এটি নির্দেশিত হয় যে পরবর্তী কী আসে যখন শর্ত মূল্যায়ন কার্যকর করা হবে if সত্যবাদী হও: অন্য কথায়, পরামিতিগুলির সংখ্যা 1 এর চেয়ে কম, অর্থাৎ শূন্য।

পঞ্চম লাইন: আমরা যদি কোনও স্ক্রিনটি কোনও পরামিতি ছাড়াই চালিত করি তবে আমরা টার্মিনালে will আপনাকে একটি পরামিতি পাস করতে হবে show

ষষ্ঠ লাইন: নির্দেশ করে যে এর পরে যা কার্যকর করা হবে যখন আমরা যে শর্তটি ঘোষণা করেছি তা সত্য নয়.

সপ্তম লাইন: সে কমান্ড চালান «যেখানে« আমরা যে বিষয়বস্তু হিসাবে উত্তীর্ণ হয়েছিল তা সহ প্রথম প্যারামিটার.

অষ্টম লাইন: সাথে «fiBlock ব্লকটি শেষ হয়েছে তা নির্দেশ করে if.

আমাদের স্ক্রিপ্ট পরীক্ষা করা হচ্ছে

এটা গুরুত্বপূর্ণ লেখার অনুমতি যুক্ত করুন লিপি:

$ chmod -x ~/.bin/donde

এটি না করে একটি "অনুমতি অস্বীকৃত" ত্রুটি উপস্থিত হবে।। এর পরে, আমরা আমাদের স্ক্রিপ্টটি চালাতে পারি।

$ donde php

এটি আমাদের পিএইচপি বাইনারিগুলির অবস্থান, তাদের উত্স ফাইল এবং ম্যান পৃষ্ঠাগুলি প্রদর্শন করবে। এরকম কিছু:

php: /usr/bin/php7.0 /usr/bin/php /usr/lib/php /etc/php 
/usr/share/php7.0-readline /usr/share/php7.0-json /usr/share/php7.0-opcache 
/usr/share/php7.0-common /usr/share/php /usr/share/man/man1/php.1.gz

পুনরায় কল করা হচ্ছে

  • আমরা একটি সক্ষম আমাদের স্ক্রিপ্টগুলি রাখতে ".bin" ডিরেক্টরি.
  • আমরা সরবরাহ কমান্ড অনুসন্ধানে এই ডিরেক্টরিটি অন্তর্ভুক্ত করার জন্য লিনাক্সের তথ্য.
  • আমরা আমাদের স্ক্রিপ্ট তৈরি।
  • পার্থক্য বিভিন্ন শেবাং.
  • ব্যাবহার para # দিয়ে পাস হওয়া প্যারামিটারের সংখ্যা.
  • ব্যাবহার প্রথম প্যারামিটার বিরূদ্ধে $1.

আমি আশা করি এবং আশা করি যে এই স্ক্রিপ্টটি আপনার পক্ষে কার্যকর হবে।


4 মন্তব্য, আপনার ছেড়ে

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

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

*

*

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

  1.   মিগুয়েল তিনি বলেন

    খুব ভাল এবং ভালভাবে ব্যাখ্যা করা হয়েছে, তবে প্যারামিটারটি কী বোঝায়?

    1.    পেড্রো রুইজ হিডালগো স্থানধারক চিত্র তিনি বলেন

      ধন্যবাদ মিগুয়েল!

      আমি কোনও প্রোগ্রাম, ফাংশন বা সিস্টেমে সরবরাহ করা সমস্ত পরিপূরক তথ্য প্যারামিটার দ্বারা বুঝতে পারি। যেহেতু এটি জটিল হতে পারে, আপনাকে কয়েকটি উদাহরণ দিয়ে উত্তর দিন।

      B.txt ফাইলটিতে a.txt ফাইলটি অনুলিপি করতে লিনাক্স কমান্ডে আমরা নিম্নলিখিতটি লিখব:

      p cp a.txt b.txt

      এখানে সিপি প্রোগ্রাম দুটি প্যারামিটার গ্রহণ করে যা দুটি ফাইলের নাম, প্রথমটি (অবশ্যই বিদ্যমান থাকতে হবে) a.txt এবং দ্বিতীয় বি.টি.এস.টি.

      অন্য উদাহরণ: আপনি যদি কমান্ডটি দিয়ে কনসোল থেকে মুদ্রণ করতে প্রেরণ করেন

      p এলপি ফাইল.পিডিএফ

      এই ক্ষেত্রে "file.pdf" হ'ল এলপি প্রোগ্রামের প্যারামিটার।

      আমি আশা করি আপনার সন্দেহগুলি আমি পূরণ করেছি।

      শুভেচ্ছা

  2.   মিগুয়েল তিনি বলেন

    আমার মন্তব্য প্রকাশিত হয় না, এটি শ্রদ্ধার অভাব, আমি আবার এই ফোরামে ফিরে আসি না।

    1.    পেড্রো রুইজ হিডালগো স্থানধারক চিত্র তিনি বলেন

      কী হয়েছে তা আমি জানি না, যে কোনও ক্ষেত্রে এটি প্রকাশিত হয়েছে।

      গ্রিটিংস।