ব্যাশ স্ক্রিপ্টগুলির জন্য .sh বা .bash এক্সটেনশন ব্যবহার করবেন?


36

( উবুন্টু-ওএসএক্সের সামঞ্জস্যতা এবং ব্যবহারের সহজতা এবং পসিক্সের জন্য #! / বিন / শ বা #! / বিন / ব্যাশ দেখুন )

যদি আমি আমার স্ক্রিপ্টগুলি ব্যাশ শেলটি ব্যবহার করতে চাই, .bash এক্সটেনশনটি ব্যবহার করে আসলে বাশকে আহ্বান জানায় বা এটি সিস্টেম কনফিগারেশন / ১ ম শেবাং লাইনের উপর নির্ভর করে। যদি উভয়ই কার্যকর হয় তবে ভিন্ন, তবে এর কোন প্রাধান্য থাকবে?

আমি আমার স্ক্রিপ্টগুলি "শেল স্ক্রিপ্ট" ইঙ্গিত #!/usr/bin/env bashকরার জন্য .sh দিয়ে শেষ করব কিনা এবং তারপরে প্রথম লাইনটি ব্যাশ শেলটি নির্বাচন করতে হবে (উদাহরণস্বরূপ ) বা কেবল তাদের .bash দিয়ে শেষ করতে হবে কিনা (পাশাপাশি লাইন 1 সেটিংটিও )। আমি চাই যেন বাশ চাওয়া হয়।


3
আমি কখনই কোনও .bashএক্সটেনশন দেখেছি বলে মনে করি না । এছাড়াও, binএক্সটেনশন না থাকার জন্য কোনও ফোল্ডারে প্যাকেজগুলির মধ্যে স্ক্রিপ্টগুলি থাকা ডেবিয়ান নীতি ।
মুড়ু

উত্তর:


19

.বাশ এক্সটেনশনটি ব্যবহার করে আসলে বাশকে আহবান করা হয় বা এটি সিস্টেম কনফিগারেশন / ১ ম শেবাং লাইনের উপর নির্ভর করে।

আপনি যদি স্পষ্টভাবে কোনও দোভাষী ব্যবহার না করেন, তবে দোভাষীকে অনুরোধ করা হচ্ছে shebangএটি স্ক্রিপ্টে ব্যবহৃত দ্বারা নির্ধারিত হয় । আপনি যদি বিশেষভাবে কোনও দোভাষী ব্যবহার করেন তবে দোভাষী আপনার স্ক্রিপ্টের জন্য আপনি কী এক্সটেনশন দেবেন তা যত্নশীল নয়। তবে এটি কী ধরণের স্ক্রিপ্ট তা অন্যের কাছে এটি অত্যন্ত স্পষ্ট করতে এক্সটেনশনটি বিদ্যমান exists

[sreeraj@server ~]$ cat ./ext.py
#!/bin/bash
echo "Hi. I am a bash script"

দেখুন, .pyবাশ স্ক্রিপ্টে বর্ধন এটিকে অজগর স্ক্রিপ্ট তৈরি করে না।

[sreeraj@server ~]$ python ./ext.py
  File "./ext.py", line 2
    echo "Hi. I am a bash script"
                                ^
SyntaxError: invalid syntax

এটি সর্বদা একটি bashস্ক্রিপ্ট।

[sreeraj@server ~]$ ./ext.py
Hi. I am a bash script

23

স্ক্রিপ্টটির নামকরণ কীভাবে এটি চালিত হয় তার সাথে কিছুই করার নেই।

শেবাং লাইনটি স্ক্রিপ্টটি চালানোর জন্য কী দোভাষী ব্যবহার করা হয় তা সংজ্ঞায়িত করে।

আমি কোনও স্ক্রিপ্ট sh, বাশ, পার্ল কিনা তা ব্যক্তিগতভাবে বিবেচনা করি না আমি যা কিছু করি তার জন্য এটির নাম রাখি; আমি একটি এক্সটেনশন রিডানড্যান্ট যুক্ত খুঁজে পাই। আমি file scriptnameএটি জানতে চাইলে ফাইলটি কী তা জানার জন্য আমি করবো।

সুতরাং আপনি যদি চান আপনার স্ক্রিপ্টটি চালিত হয় তবে প্রথম লাইন হিসাবে bashব্যবহার করুন #!/bin/bash


4
এছাড়াও, যদি স্ক্রিপ্টটির জন্য প্রয়োগের পছন্দটি কখনও পরিবর্তিত হয় (বলুন এটি পাইথন, পার্ল, সি ... এ আবার লেখা হয়েছে), .shস্টাইল এক্সটেনশন না থাকার অর্থ এটির নামকরণের দরকার নেই। (স্বীকার যে কোনও .shএক্সটেনশন সহ বাইনারি উত্পাদন করা কোনও সি প্রোগ্রামকে বাধা দেওয়ার কিছুই নেই , এটি কেবল বিভ্রান্তিকর হবে))
স্টিফেন কিট

2
ব্যবহারের #!/usr/bin/env bashবহনযোগ্যতা জন্য, এখানে আলোচনা stackoverflow.com/a/10383546/54964
Léo লেয়পল হের্ৎস 준영

4
@ উর্টেল (বিলেটেড মন্তব্য, ঠিক আছে?) ইমো এক্সটেনশন যুক্ত করা অপ্রয়োজনীয় from বেশিরভাগ সম্পাদক এক্সটেনশনের উপর ভিত্তি করে সিনট্যাক্স হাইলাইটিং সমর্থন করে, এবং এটির সাথে ফাইলের ধরণের তাত্ক্ষণিক দৃশ্যমানতা বোধ করা যায়। স্পষ্টতা এবং পাঠ্যতা অনেক বিষয়।
রল্ফব্লাই

@ রल्फব্লি: আমি যে সম্পাদকগুলি ব্যবহার করি সেগুলি শেবাংকে সনাক্ত করে এবং সিনট্যাক্স হাইলাইটিং সরবরাহ করে। স্পষ্টতা দরকারী, তবে বেশিরভাগ সময় আমরা একটি কমান্ড কার্যকর করতে চাই এবং আমি কম টাইপ করতে হয় এবং এটির প্রয়োগের ভাষাটি মনে রাখতে না পারলে ভাল।
হন্টভেরি লেভেন্তে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.