উত্স থেকে শেল স্ক্রিপ্টগুলির জন্য কোনও ফাইল বর্ধনের জন্য একটি অফিসিয়াল স্ট্যান্ডার্ড / কনভেনশন


12

আমি ভাবছিলাম যে রানের পরিবর্তে আপনি উত্স করতে চান শেল স্ক্রিপ্টগুলির জন্য ফাইল টাইপ এক্সটেনশনগুলির জন্য কোনও কনভেনশন আছে কিনা। উদাহরণ স্বরূপ:

  1. যদি আমি এই স্ক্রিপ্টটি একটি সাব-শেলের মধ্যে চালাতে চাই।

    ./script.sh 
  2. আমি যদি মনে করতে চাই তবে বর্তমান শেল থেকে এই স্ক্রিপ্টটি চালানো উচিত।

    . script.source 

আছে কি একটা সম্মেলনে দ্বিতীয় উদাহরণে একটি filetype: জন্য (উদাহরণস্বরূপ POSIX মত)? এরকম কিছু .sourceনাকি .sourceme?


হালনাগাদ

এই প্রশ্ন কোন মতামত সম্পর্কে জিজ্ঞাসা করে না। আমি স্পষ্টভাবে বলেছি যে এই ধরণের স্ক্রিপ্টগুলির জন্য কোনও প্রমিত ফাইল এক্সটেনশন আছে কিনা তা জানতে চাই। এই প্রশ্নটি অনুরূপ ইস্যুতে এই ভাল প্রাপ্ত প্রশ্নের চেয়েও কম মতামত ভিত্তিক ( ব্যাশ স্ক্রিপ্টগুলির জন্য .sh বা .bash এক্সটেনশন ব্যবহার করবেন? )।


1
কিছু লোক মনে করেন যে এক্সিকিউটেবল চালানো যায় এমন শেল স্ক্রিপ্টগুলি (যেমন তারা শুরু করে #!/bin/shবা অনুরূপ হতে পারে তার কোনও এক্সটেনশন হওয়া উচিত নয়, কারণ ব্যবহারকারীর অন্তর্নিহিত স্ক্রিপ্টটি কোন ভাষায় লেখা হয়েছিল তা যত্ন নেওয়ার দরকার নেই।
the_velour_fog

1
এটি এর জন্য নির্ভর করে, আপনি এনভীভ, আরসি, কনফিড ইত্যাদি পেতে পারেন
123

1
@ 123 এটা নির্ভর করে, কখনও কখনও একবার তোমাকে কিছু না না দরকারী গড়ে তুলতে এবং তা পুরা $PATH, তাই আপনাকে তার মত, সব সময় ব্যবহার করতে আসা ps, ls, curlএবং সমস্ত অন্যান্য কমান্ড, তাহলে আপনি এটি প্রায় বিল্ড শেল সমাপ্তির ফাংশন শুরু, আমি খুঁজে এক্সটেনশনটি ফেলে দেওয়া ঠিক আছে। তবে হ্যাঁ, আপনি যখন শেল স্ক্রিপ্টটি সসার করছেন, যেগুলি নিজে চালানো যায় না, আমি chmod +xসেগুলি করব না এবং আমি তাদের নাম দেব script.sh। এছাড়াও আমি প্রায়শই বিশুদ্ধরূপে একটি এক্সটেনশন বরাদ্দ করি কারণ যদি আমি না করি তবে আমি আমার সম্পাদকটিতে সিনট্যাক্স হাইলাইট করব না।
the_velour_fog

5
কোন কনভেনশন নেই। আপনি যদি কোনও সংস্থায় থাকেন বা আপনি যদি কোনও শেয়ার প্রকল্পে অংশ নিচ্ছেন (উদাঃ ওপেনসোর্স) তবে আপনার মেনে চলার স্থানীয় মান থাকতে পারে, তবে কোনও বাস্তব সম্মেলন নেই convention
স্টিফেন হ্যারিস 13 ই

1
শব্দ "সম্মেলন" (অর্থাত # 2) কি সম্ভবত প্রতি "মতামত ভিত্তিক" উত্তর ফলস্বরূপ হয়। উৎসের জন্য খোলা গ্রুপ বৈশিষ্ট কোন নামকরণ মান জোরদার করে না।
জেফ শ্যাচলার

উত্তর:


18

আমি ব্যবহার করেছি .sh(পসিক্স shভাষায় ফাইলগুলির .bashজন্য, অ-শ-সামঞ্জস্যপূর্ণ bashফাইলগুলির জন্য, সেই এক্সটেনশনটি হ'ল স্ক্রিপ্টটি যে ভাষায় লিখিত আছে তা চিহ্নিত করে) উদ্দেশ্যে উত্সাহিত ফাইলগুলি (বা আরও সাধারণভাবে মৃত্যুদন্ড কার্যকর করার উদ্দেশ্যে নয়), এবং কার্যকর করার জন্য বোঝানো ফাইলগুলির জন্য কোনও এক্সটেনশন নেই।

আপনি একটি যোগ করতে পারেন:

#! /bin/echo Please-source

সে-ব্যাং, যাতে ভুল করে মৃত্যুদন্ড কার্যকর করার সময় (যদিও আমি প্রত্যাশা করি যে এই ফাইলগুলিকে মৃত্যুদণ্ডের অনুমতি দেওয়া উচিত নয়, যা ইতিমধ্যে কার্যকর হওয়া আটকাবে), আপনি একটি নোটিশ পাবেন যে পরিবর্তে এটি উত্সাহিত করা উচিত।


স্ক্রিপ্টটি উত্সাহিত না হলে আপনি প্রস্থানও করতে পারেন ( স্ট্যাকওভারফ্লো.com
q

4

উত্স ফাইলগুলির ক্ষেত্রে, আমি মনে করি সবচেয়ে ভাল উপায় হ'ল আপনার স্ক্রিপ্টটি কনফিগার করা ফাইলগুলির জন্য .conf এবং .shlib বা .shlibs ফাংশন বা অন্যান্য ব্যবহার রয়েছে।

আপনি যদি আপনার স্ক্রিপ্টটি ভুল শেল দিয়ে চালানোতে আটকাতে চান এবং আপনার জন্য হ্যাশবাং যথেষ্ট নয়, আপনি এটি ব্যবহার করতে পারেন:

if [ "$(readlink "/proc/$$/exe")" != "/bin/bash" ]; then
      echo >&2 "CAUTION: Wrong interpreter detected. You must use bash."
      exit 1
fi

1
আপনি লিনাক্স-নির্দিষ্ট ব্যবহার করতে যাচ্ছেন এমন /proc/$$/exe, আপনি হিসাবে ভাল হিসাবে এটি কি হতে পারে case $(readlink "/proc/$$/exe") in */bash)..., যদিও এখানে আমি কেবল ব্যবহার করতে চাই: if [ -z "$BASH_VERSION" ]। ( echoহওয়া উচিত echo >&2) (আমি আপনাকে .confবা .shlibs(তবে sh ফাইলগুলির জন্য) এক্সটেনশনগুলি পছন্দ করি যদিও এটি এক্সটেনশানের উপর নির্ভরশীল সিনট্যাক্স হাইলাইটারগুলিকে সহায়তা করতে পারে না)।
স্টাফেন চেজেলাস

হ্যাঁ আমি এই .slibs দেখতে পাচ্ছি, এমন কোনও প্রোগ্রামে যা আমি ডনলোড করি, তবে আমি মনে করি না, তাই আমি এটি ব্যবহার শুরু করেছি। টিপটির জন্য আপনাকে অনেক ধন্যবাদ, আমি আরও সুন্দর করে রিডলিংক সংস্করণ দিয়ে প্রশ্নটি সম্পাদনা করব। ;-)
লুসিয়ানো অ্যান্ড্রেস মার্টিনি 13

@ স্টাফেনচাজেলা সিনট্যাক্স হাইলাইটিং ফাইলগুলিতে মেটা-ডেটার মাধ্যমে তাদের ট্রিগার করা হতে পারে (ইম্যাকস এবং ভিমের জন্য অন্ততপক্ষে), সুতরাং ফাইলের নাম বর্ধনের পছন্দটি সেই ক্ষেত্রে অপ্রাসঙ্গিক।
কুসালানন্দ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.