"শে-ব্যাং" কেন একটির #!
মতো শুরু হয় #!/bin/bash
? আমি সর্বদা গ্রহণ করেছি যে এটি কীভাবে এটি করা হয় তবে এর পিছনে কোনও কারণ আছে কি?
কেন দিয়ে শুরু #
; এটা কি সাধারণত মন্তব্য না? বা এটি মন্তব্য করা উচিত যে পয়েন্ট?
"শে-ব্যাং" কেন একটির #!
মতো শুরু হয় #!/bin/bash
? আমি সর্বদা গ্রহণ করেছি যে এটি কীভাবে এটি করা হয় তবে এর পিছনে কোনও কারণ আছে কি?
কেন দিয়ে শুরু #
; এটা কি সাধারণত মন্তব্য না? বা এটি মন্তব্য করা উচিত যে পয়েন্ট?
উত্তর:
সাধারণত কুঁড়েঘর শুধু বোঝায় #!
( !
সাধারণত "ঠুং" বলা হয়, এবং এটি মত "সে" হয় "পরিষ্কার" বা "hash" একটি দুর্নীতি দেখায় #
) - পুরো লাইনটি একটি বলা হয় কুঁড়েঘর লাইন
এটি ইচ্ছাকৃতভাবে পিছনে-সামঞ্জস্যের জন্য কোনও মন্তব্য চরিত্র দিয়ে শুরু করে যেগুলি কীভাবে এটি পরিচালনা করতে জানে না; !
শুধু ফাইল শুরু একটি র্যান্ডম মন্তব্য থেকে আলাদা, তাদের, তাই একটি ফাইল দিয়ে শুরু হয় সম্ভবতঃ হয় # this is my script!
চালানোর চেষ্টা করে না this is my script!
ব্যাখ্যাকারী
!
কার্যকর করার জন্য নির্দেশ নির্দেশ করতে প্রায়শই অন্যান্য প্রসঙ্গে ব্যাং ব্যবহৃত হয়। উদাহরণস্বরূপ vim
বা অন্যান্য প্রোগ্রামগুলিতে নিজস্ব কমান্ড লাইনের সাহায্যে ব্যাং হ'ল পালানো অক্ষর যা তাদের অভ্যন্তরীণ ইন্টারফেসের পরিবর্তে সিস্টেম শেলের মধ্যে কমান্ড চালায়।
এটি বুঝতে আপনার অবশ্যই বুঝতে হবে যে স্ক্রিপ্টের প্রথম লাইনটি 2 টি পৃথক প্রোগ্রামের দ্বারা আসলে দুবার পড়েছে । প্রথমবার, কার্নেল ফাইলটি খুলবে এবং #!
প্রথম লাইনে character অক্ষরের অনুক্রম ( ) সন্ধান করবে। এটি যদি এটির সন্ধান করে তবে এটি শেল প্রোগ্রামটি চালিত করে যা সেখানে নির্দেশিত রয়েছে, পরামিতি হিসাবে ফাইলের নামটি প্রেরণ করে। (উদাহরণস্বরূপ, ফাইলটি /home/me/foo
শুরু হলে #!/bin/sh
, কার্নেলটি চলবে /bin/sh /home/me/foo
)।
এরপরে শেলটি ( bin/sh
বা যে কোনও অনুবাদক প্রোগ্রাম নির্দিষ্ট করা হয়েছিল) ফাইলটি পড়ে। শেলটি শেবাং লাইনগুলি সম্পর্কে কিছুই জানে না তবে এটি প্রথম পংক্তিটি এখনও পড়বে কারণ এটি ফাইলের অন্য লাইনের মতোই ... এটি সমস্তই পড়ে। আপনি শেলটি ক্র্যাশ করতে বা কোনওভাবেই এর আচরণ পরিবর্তন করতে চান না ... এটি করার উপায়টি এটির আচরণ হিসাবে করা একটি মন্তব্য হিসাবে এবং এটিকে উপেক্ষা করা। সুতরাং, কার্নেল নির্দেশের সাথে শুরু করার জন্য সেরা চরিত্রটি হ'ল মন্তব্য চরিত্র।
এটি একটি মন্তব্য হওয়া প্রয়োজন কারণ কেবল এই পথে এটি "ইন্টারপ্রিটার্নারাম স্ক্রিপ্টনাম" এর মতো স্ক্রিপ্ট চালানোর জন্যও কাজ করবে। "!" এর উত্স সম্পর্কে আমি জানি না।
#!
(ডিএমআর যতটা মনে রাখে ...) এর মোটামুটি বিস্তারিত ইতিহাস রয়েছে, কেন#
(হ্যাঁ, রেখাটি বিদ্যমান শাঁস দ্বারা উপেক্ষা করা হয়েছিল) এর একটি ব্যাখ্যা সহ including