কম্পিউটার

লিনাক্স শেল স্ক্রিপ্টে '#!' কী?

#! – সাধারণত ডাকনাম শেবাংশাবাংহ্যাশব্যাংপাউন্ডব্যাং – আমরা শেবাং এর সাথে থাকব এই নিবন্ধের সময়কালের জন্য।

এটি অগণিত লিনাক্স শেল স্ক্রিপ্টের শুরুতে পাওয়া যায় – কিন্তু আসলে এটি কী? আসুন এটি ভেঙে ফেলি।

এটি সাধারণত এরকম কিছু দেখায়

#!/bin/bash

#! ফাইলের শুরুতে প্রদর্শিত হয়, সাধারণত প্রথম লাইনে, তারপর একটি এক্সিকিউটেবলের পথ অনুসরণ করে (এই ক্ষেত্রে, bash শেল)।

এটি একটি মন্তব্য

এটি একটি #, দিয়ে শুরু হয় তাই এটি স্ক্রিপ্টের অংশ হিসাবে কার্যকর করা হয় না – তবে এটি স্ক্রিপ্টটি কীভাবে কাজ করে তা প্রভাবিত করে, কারণ

এটি একটি দোভাষী নির্দেশিকাকে এগিয়ে নিয়ে যায়

শেবাং স্ক্রিপ্ট চালানোর জন্য কোন ইন্টারপ্রেটার ব্যবহার করতে হবে তা সিস্টেমকে বলে যে ইন্টারপ্রেটারকে এক্সিকিউটেবল পাথ দিয়ে।

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

উদাহরণ

নিচে কিছু #! উদাহরণ এবং তাদের অর্থ কী:

ব্যাশ

#!/bin/bash

একটি স্ক্রিপ্টের শুরুতে এই লাইনটি স্থাপন করা সিস্টেমকে বলে দেবে যে এটি bash ব্যবহার করে কার্যকর করা উচিত শেল এক্সিকিউটেবল।

zsh

#!/bin/zsh

একটি স্ক্রিপ্টের শুরুতে এই লাইনটি স্থাপন করা সিস্টেমকে বলে দেবে যে এটি zsh ব্যবহার করে কার্যকর করা উচিত শেল এক্সিকিউটেবল।

bash এর মধ্যে পার্থক্য সম্পর্কে আমাদের নিবন্ধ পড়ুন এবং zsh এখানে!

পাইথন

#!/usr/bin/env python3

Python 3 ব্যবহার করে স্ক্রিপ্টটি চালান। এখানে লক্ষ্য করুন যে python3-এর পথ নির্দিষ্ট করার পরিবর্তে এক্সিকিউটেবল, এই লাইনটি ব্যবহারকারীদের পরিবেশের জন্য বর্তমানে সংজ্ঞায়িত python3 এক্সিকিউটেবল খুঁজে পায়।

কিছুই না!

#!/bin/false

একটি ব্যর্থতার স্থিতি কোড ফেরত দেয় এবং স্ক্রিপ্টটি কার্যকর করে না। স্ক্রিপ্টগুলিতে ব্যবহৃত হয় যা সরাসরি কার্যকর করার উদ্দেশ্যে নয়।

#কে বাইপাস করে!

আপনি যদি একটি #! দিয়ে একটি স্ক্রিপ্ট চালান ভালো লাগে:

./myscript.sh

এখানে myscript.sh আপনার স্ক্রিপ্টের নাম – শেবাং কোন দোভাষী ব্যবহার করা হবে তা নির্ধারণ করতে ব্যবহৃত হয়৷

উপরেরটি শুধুমাত্র সেই স্ক্রিপ্টগুলিতে করা যেতে পারে যেখানে বর্তমান ব্যবহারকারীর রয়েছে execute৷ অনুমতি।

তবে, আপনি যদি নিম্নলিখিতগুলি করেন:

bash myscript.sh

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


  1. লিনাক্সে কীভাবে সাধারণ শেল স্ক্রিপ্ট তৈরি করবেন

  2. শেল প্রোগ্রামিং শেখার জন্য লিনাক্স নতুনদের জন্য 5টি শেল স্ক্রিপ্ট - দ্বিতীয় অংশ

  3. লিনাক্স শেল এবং বেসিক শেল স্ক্রিপ্টিং ভাষা টিপস বুঝুন – প্রথম অংশ

  4. শেল স্ক্রিপ্টে সিনট্যাক্স চেকিং ডিবাগিং মোড কীভাবে সম্পাদন করবেন