What is shebang #!/usr/bin/env bash

What is shebang #!/usr/bin/env bash

আমরা যারা shell programming বা bash programming শিখছি তারা সর্বপ্রথম যেই লাইন টা দিয়ে শুরু করি সেটা হলঃ

#!/usr/bin/env bash

echo "Hello World!"

এখন এখানে দ্বিতীয় লাইন টা আমরা সহজে বুঝতে পারলেও প্রথম লাইন টা বুঝতে অসুবিধা হয়। এটাকে বলা হয় shebang যেটা bash/shell scripting এর একদম প্রথম লাইন। এখন এই লাইন টা লেখা mandatory না। যে কেউ চাইলে এটা ignore করে আসল কাজে ফোকাস করতে পারে। তাহলে এই লাইন টা যে আমরা অনেক জায়গায় লেখা দেখি। mandatory না হওয়া সত্ত্বেও অন্যরা কেন use করে? যদি আপনার মনে এই প্রশ্ন জেগে থাকে তাহলে আসুন একটু গভীরে যাওয়া যাক।

shebang! যার আর এক নাম sharp exclamation যেটা কিনা script এর শুরুর লাইন। এটা # এবং ! সাইন এর combination। এই লাইন টা ব্যবহার করা হয় interpreter কে specify করার জন্য যাতে করে আমরা যেই script টা লিখলাম সেটা বলে দেওয়া interpreter এ run হয়। Linux কম্পিউটার গুলোতে by default bash shell দেওয়া থাকে। যেহেতু by default দেওয়া থাকে তাই আমরা #!/usr/bin/env bash এই লাইন টা না লিখলেও interpreter automatic bash shell এই script file কে রান করে থাকে। আর এই লাইন টা লেখা একটা good practice. আপনি এটাকে convention ও বলতে পারেন।

কেউ যদি bash না ব্যাবহার করে fish/zsh shell ব্যাবহার করতে চায় তাহলে সে সেটা করতে পারবে। এই ক্ষেত্রে যেহেতু fish/zsh shell কোনটাই default shell না সেহেতু আমাদেরকে অবশ্যই বলে দিতে হবে যে কোন shell এ script টা রান হবে।

যেমন যদি fish shell ব্যাবহার করতে চায় কেউ তাহলে এইভাবে বলে দিতে হবে।

#!/usr/bin/env fish

echo "Hello, World!"

আবার কেউ যদি zsh shell ব্যাবহার করতে চায় কেউ তাহলে এইভাবে বলে দিতে হবে।

#!/usr/bin/env zsh

echo "Hello, World!"

এই ছিল shebang নিয়ে বিস্তারিত। ব্লগ টি ভালো লাগলে আপনার বন্ধুদের মাঝে share করতে ভুলবেন না।