.Sh এক্সটেনশন দিয়ে আমার স্ক্রিপ্টগুলি সংরক্ষণ করা উচিত?


66

আমার কিছু কার্যকরী স্ক্রিপ্ট রয়েছে এবং আমি অনুলিপি করতে /usr/binচাই সেগুলি সাধারণ টার্মিনাল কমান্ড হিসাবে ব্যবহার করতে চাই। এগুলি .shএক্সটেনশন দিয়ে ব্যবহার করা কি ভাল অনুশীলন বা আমি কোনও এক্সটেনশন ছাড়াই সেভ করতে পারি?


6
এছাড়াও যদি আপনি চান যে এই স্ক্রিপ্টগুলি সমস্ত ব্যবহারকারীর জন্য উপলভ্য হয়, তবে /usr/local/binএটি আরও ভাল পছন্দ হতে পারে।
সালেম

6
@ সেলাম /usr/binএবং /usr/local/binউভয়ই সমস্ত ব্যবহারকারীর জন্য উপলব্ধ হওয়া উচিত, তবে /usr/local/binপ্যাকেজগুলির অংশ নয় এমন এক্সিকিউটেবলের পক্ষে ভাল।
Gerrit

আমি দেখেছি কেবলমাত্র সুবিধাটি হ'ল ভিম বা ন্যানোর মতো সম্পাদকরা শুরু থেকেই কীভাবে হাইলাইট করতে হয় তা জানেন এবং এটি সম্পর্কে about
রথ

1
@rath আমি এক্সটেনশন ছাড়া সিনট্যাক্স হাইলাইটিং পেতে যদি আমি কুঁড়েঘর-এ স্থাপন আছে #!/usr/bin/env bashবা #!/bin/bash
স্পারহাক

@ স্পারহাক আসলে তবে আমি স্ক্রিপ্টটি চালানোর চেষ্টা না করা পর্যন্ত আমি প্রায়শই এটি ভুলে যাই;)
রাথ

উত্তর:


71

না, এটি একটি ভাল অনুশীলন নয়, আপনার স্ক্রিপ্টগুলি এক্সটেনশন ছাড়াই রাখা উচিত। মনে রাখবেন, যে স্ক্রিপ্ট হচ্ছে প্যাকেজ অংশ নেই .sh এক্সটেনশন, অর্থাত আপডেট-কীড়া না update-grub.sh । আপনি যদি এখনও নিশ্চিত না হন তবে পরামর্শ দিন, গুগল শেল স্টাইল গাইড যা বলে:

এক্সিকিউটেবলের কোনও এক্সটেনশন (জোরালোভাবে পছন্দ করা) বা একটি .sh এক্সটেনশন থাকা উচিত। গ্রন্থাগারগুলিতে অবশ্যই একটি .sh এক্সটেনশন থাকতে হবে এবং তা কার্যকর করা উচিত নয়।

পিএস আপনাকে নিজের স্ক্রিপ্টটি toোকাতে হবে না /bin। আপনি ডিরেক্টরি তৈরি করতে ~/binএবং আপনার স্ক্রিপ্টটি সেখানে রাখতে পারেন। ডিরেক্টরিটি ডিফল্টরূপে ~/binঅন্তর্ভুক্ত থাকে $PATH, সুতরাং সেখানে রাখা স্ক্রিপ্টগুলি অন্য শেল কমান্ড হিসাবে চালানো যেতে পারে।


4
"ডিরেক্টরি ~ / বিন $PATHডিফল্টরূপে অন্তর্ভুক্ত করা হয়" - কখন থেকে? যাইহোক, ~/.local/binসম্ভবত এটি একটি মান হিসাবে এটি আরও ভাল পছন্দ।
nyuszika7h

1
আপনার অর্থ "লাইব্রেরিতে অবশ্যই একটি .so এক্সটেনশন থাকা উচিত", তাই না? শ না।
কিথ ওয়াল্টার্স

3
@ কিথওলটার্স প্রথমে আমাকে নয়, গুগল। দ্বিতীয়ত .sh, না। সুতরাং, আমরা শেল স্ক্রিপ্টগুলির বিষয়ে কথা বলছি, বাইনারি নয়।

1
গুগল স্টাইল গাইড গুগলের সাথে খুব নির্দিষ্ট। উদাহরণস্বরূপ, "ব্যাশ শুধুমাত্র এক্সিকিউটেবলের জন্য অনুমোদিত শেল স্ক্রিপ্টিং ভাষা।" পরিষ্কারভাবে সর্বোত্তম অনুশীলনের চেয়ে অভ্যন্তরীণ নিয়ম।
পল

1
@ nyuszika7h check /। প্রোফাইল পরীক্ষা করে দেখুন ... এটি ডিরেক্টরি উপস্থিত থাকলে আপনার পথে into হোম / বিন প্রবেশ করায়
কোরি গোল্ডবার্গ

9

সের্গেই যেমন বলেছিল সেটিকে আমি ~/binস্বয়ংক্রিয়ভাবে আপনার সাথে যুক্ত করার জন্য ব্যবহারের সুপারিশটিকে দ্বিতীয় করব । বা , যা ইতিমধ্যে এর উপর থাকতে পারে । যাহোক:$PATH/usr/local/binPATH

  • আপনি নিজের জন্য এটি করছেন। আপনি যেটি স্বাচ্ছন্দ্য বোধ করেন তা ব্যবহার করুন। প্রকৃতপক্ষে, আমি বলব এক্সটেনশনটি রাখুন যাতে আপনি স্মরণ করিয়ে দিন যে এটি আপনার চালানো স্ক্রিপ্ট, যেহেতু -
  • এক্সটেনশনগুলি অস্বাভাবিক /usr/bin। আমার সিস্টেমে, আমি মাত্র দুটি খুঁজে পেতে পারি:

    $ dpkg -S `ls /usr/bin/*.sh`
    mtools: /usr/bin/amuFormat.sh
    gettext-base: /usr/bin/gettext.sh
    

    সুতরাং আপনি যদি প্যাকেজিং করছেন তবে অবশ্যই এক্সটেনশনটি ছেড়ে দিন।


2
~/bin$PATHএটি উপস্থিত থাকলে স্বয়ংক্রিয়ভাবে যুক্ত হয় , এটি ম্যানুয়ালি যুক্ত করার দরকার নেই। কেবল ডিরেক্টরি তৈরি করুন, লগ আউট করুন এবং আবার লগ ইন করুন
সের্গেই

5

কেবল ফাইলের শীর্ষে নিম্নলিখিত লাইনটি রাখুন:

#!/bin/bash

সুতরাং-ফাইলটি স্বয়ংক্রিয়ভাবে টাইপ করা হবে: কোনও এক্সটেনশন ছাড়াই শেল স্ক্রিপ্ট !

ফাইল করার জন্য ফাঁসির অনুমতি দিতে মনে রাখবেন।

সরাসরি কমান্ড দ্বারা চালিত হতে পারে যাতে স্ক্রিপ্ট স্থাপনের জন্য, দেখুন: আমার স্ক্রিপ্টটি কোথায় রাখা উচিত যাতে আমি এটি সরাসরি কমান্ড দ্বারা চালাতে পারি?


2
অথবা এমনকি যদি আপনার পূর্ণ বাশ শেল না লাগে কেবল #! / বিন / শ!
ফ্লিকারফুল

অনেকগুলি ওএস লিঙ্ক / বিন / শ এবং / বিন / বাশ
ম্যাক্স কপলান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.