ইউনিক্স শেল স্ক্রিপ্টগুলির জন্য ফাইল এক্সটেনশান [বন্ধ]


45

উইকিপিডিয়ায় .sh এর নিবন্ধটি বলে:

.Sh ফাইল এক্সটেনশনের ধরণের জন্য, বোর্ন শেল দেখুন

অন্যান্য ইউনিক্স শেলগুলি সম্পর্কে কীভাবে?

আমি জানি যে ফাইলটির অভ্যন্তরে শেবাং ব্যবহার করা হয়েছিল মৃত্যুদন্ড কার্যকর করার জন্য একজন দোভাষীকে নির্দেশ করার জন্য, তবে আমি অবাক হই:

  • কোনও ফাইল এক্সটেনশন বনাম ফাইল এক্সটেনশনের পক্ষে কি কি?

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

3
শেল স্ক্রিপ্টের একটি এক্সটেনশন থাকলে এটি সাধারণত .sh হয়। আমি কখনও .ksh বা .Bash স্ক্রিপ্টটি দেখিনি। উদাহরণস্বরূপ /etc/init.d/* এর সমস্ত স্ক্রিপ্টগুলির মতো বেশিরভাগ শেল স্ক্রিপ্টগুলির কোনও এক্সটেনশন নেই।
রিচার্ড হলোয়ে

যদিও সরল উপসংহারটি (হ্যাঁ বা না) মতামত, তবে বিবেচ্য বিষয়গুলি নয়।
ctrl-alt-delor

উত্তর:


35

আমি কেবল .shএমন কিছু কল করব যা বোঝাতে পোর্টেবল (এবং আশা করা যায় যে পোর্টেবল)।

নাহলে আমি মনে করি ভাষাটি লুকিয়ে রাখা আরও ভাল। সতর্ক পাঠক তা সেভাবেই শেবাং লাইনে খুঁজে পাবেন। (অনুশীলনে, .bashবা .zsh, ইত্যাদি ... প্রত্যয় খুব কম ব্যবহৃত হয়।)


1
এই পৃষ্ঠার একা থেকে, আমরা ইতিমধ্যে এটি ব্যবহার করার মতো লোকজনকে দেখতে পারা যায় না। আপনি কেন বলেন যে এগুলি "খুব কম ব্যবহৃত হয়"? কোন উদ্ধৃতি? নাকি এটি কেবল আপনার অভিজ্ঞতার ভিত্তিতে?
পেসারিয়ার

23

আমি বলব যে ফাইল এক্সটেনশনের জন্য কোনও "ভাল অভ্যাস" বিদ্যমান নেই, একটি প্রযুক্তিগতভাবে কঠোরভাবে: ইউনিক্স / লিনাক্স / * বিএসডি ফাইল সিস্টেমগুলি প্রতি সেঞ্চায় এক্সটেনশন সমর্থন করে না। আপনি যেটিকে এক্সটেনশান বলছেন তা কেবল একটি একক ফাইলের নামের প্রত্যয়। এটি ভিএম / সিএমএস, ভিএমএস, এমএস-ডস এবং উইন্ডোজ ফাইল সিস্টেম এবং ওএসের চেয়ে আলাদা যেখানে ইনোড-নৈতিক-সমতুল্যের একটি বিশেষ স্পট কোনও এক্সটেনশনের জন্য সংরক্ষিত।

এই ছোট্ট হাঁসফাঁসটি এখন শেষ হয়েছে, আমি মনে করি শেল স্ক্রিপ্ট ফাইলের নামের উপর ".sh" বা ".ksh" বা ".Bash" প্রত্যয় স্থাপন করা কিছুটা নির্বোধ। একটি প্রোগ্রাম একটি প্রোগ্রাম: কী সম্পাদিত হয় তা পার্থক্যে কোনও লাভ নেই। কোনও ইউনিক্স বা লিনাক্স বা যে কোনও কার্নেল কেবল কোনও ফাইল নাম প্রত্যয়ের কারণে কিছু ফাইলের জন্য ইন্টারপ্রেটার কল করার সিদ্ধান্ত নিয়েছে। #!ফাইলটির শুরুতে এটি লাইন বা কিছু অন্য "ম্যাজিক নম্বর" বাইট অনুসারে সম্পন্ন হয়েছে। আসলে, কোনও ফাইলের নাম "এক্সটেনশন" এর উপর ভিত্তি করে কী কার্যকর করতে হবে তা সিদ্ধান্ত নেওয়াই অন্যতম কারণ যা উইন্ডোজকে একটি ম্যালওয়্যার চৌম্বক করে তোলে। কতগুলি উইন্ডোজ ম্যালওয়্যার কেলেঙ্কারীতে "কিছু.jpg.exe" নামে একটি ফাইল জড়িত তা দেখুন - ডিফল্টরূপে নতুন উইন্ডোজ ".exe" এক্সটেনশনটি দেখায় না এবং কোনও ব্যবহারকারীকে কেবল "" উপর ডাবল ক্লিক করতে উত্সাহিত করে

আপনি সরাসরি কমান্ড হিসাবে যা ভাবতে পারেন তা প্রায়শই শেল স্ক্রিপ্ট হয়। কখনও কখনও ccএকটি শ স্ক্রিপ্ট হয়েছে, firefoxএকটি শ স্ক্রিপ্ট, startxএকটি শ স্ক্রিপ্ট। আমি বিশ্বাস করি না যে ".sh" প্রত্যয় সহ একটি স্ক্রিপ্ট চিহ্নিত করার জন্য কোনও জ্ঞানীয় বা সাংগঠনিক সুবিধা রয়েছে।


24
আমি দ্বিমত! আমার কাজের মধ্যে বাইনারি এক্সিকিউটেবল থেকে শেল স্ক্রিপ্টস (কেএসএস, ব্যাশ এবং কিছু লিগ্যাসি সিএসএস) সহ কয়েক হাজার ফাইল যুক্ত একটি অ্যাপ্লিকেশন প্যাকেজিং রয়েছে of আমার কাছে, বিশ্বাস করুন যে আমরা কোন ধরণের ফাইলটি নিয়ে আলোচনা করছি এবং আমরা সন্ধান করছি সেগুলি এক নজরে (বা একটি রেজেক্সে) জানতে সক্ষম হতে পার্থক্য তৈরি করে । আমার বক্তব্যটি হ'ল কী উত্তেজিত হয় তা আলাদা করার ক্ষেত্রে কোনও উপকার হতে পারে এবং সর্বোত্তম অনুশীলনের ফলে ফাইলের ধরণটি স্পষ্টভাবে উল্লেখ করা উচিত encourage
রাহমু

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

3
আমি পছন্দ করব, দুর্ভাগ্যক্রমে আমি আমার বর্তমান কাজের ক্ষেত্রে আমার বর্তমান অভিজ্ঞতার কথা বলতে পারি। আমি অনেক ভাল অভ্যাস ও মান সম্পর্কে জানি না সাধারণভাবে ; আমার মনে হয় এখানে উত্তর পোস্ট করার আগে আমার কিছু গবেষণা করা উচিত। আমি আজ রাতের কাজের পরে এটি সন্ধান করব :)
রাহমু

2
@rahmu "ফাইল" কমান্ড ফাইলের ধরণ নির্ধারণের জন্য বিদ্যমান। এটি বিভিন্ন শেলের জন্য লিখিত স্ক্রিপ্টগুলি আলাদা করতে সক্ষম।
ম্যাট

3
যদি আপনি শেল স্ক্রিপ্টকে একটি .shএক্সটেনশান দেন, আপনাকে .shএটি কমান্ড নামের অংশ হিসাবে টাইপ করতে হবে যখন এটি শুরু করার সময়। আমি সেই এক্সটেনশনটি (শেবাং লাইনযুক্ত কোনও কিছুর সাথে সমান) রাখার কেন প্রধান কারণ নয়। বিটিডাব্লু, উইন্ডোজের সমস্যাটি .exeপ্রতি সেফের উপসর্গ নয় ( image.jpgলিনাক্সে এক্সিকিউটেবলের নামকরণ করা তুচ্ছ , সর্বোপরি) তবে উইন্ডোজ সাধারণত এই এক্সটেনশনটি লুকিয়ে রাখে এবং বাস্তবায়ন কার্যকর করার জন্য প্রয়োজনীয় পদক্ষেপ গ্রহণের প্রয়োজন হয় একটি দস্তাবেজ খোলার ঠিক একই।
celtschk

12

যেহেতু একাধিক? নিক্স পরিবেশে কাজ করেছেন, আমাকে বিভিন্ন শেল লিখতে হয়েছে। এটি বিশ্বাস করুন বা না, প্ল্যাটফর্ম জুড়ে শাঁস এক রকম নয়। সুতরাং আপনি যদি একাধিক শেলের মধ্যে আপনার ব্যক্তিগত গ্রন্থাগারটি বজায় রাখেন (প্রয়োজনে) শেলগুলি আইডি করতে এক্সটেনশনগুলি ব্যবহার করা খুব সহায়ক। আপনি যখন অন্য প্ল্যাটফর্মে চলে যান এবং শেলটি কিছুটা আলাদা হয়, আপনি জানেন যে সংশোধনগুলির জন্য কী স্ক্রিপ্টগুলি লক্ষ্য করতে হবে। .sh .ksh .bsh .csh ...



আপনি যদি একটি নেই #!স্ক্রিপ্ট (যেমন শুরুতে #!/bin/bash)?
ctrl-alt-delor

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

@ ctrl-alt-delor: "ইউনিক্স" একটি ট্রেডমার্ক । ট্রেডমার্ক সমস্যাটি (এবং শিশুদের) এড়াতে লোকেরা প্রায়শই "? নিক্স" ব্যবহার করে।
জেএস।

@ জেএস `ইউনিক্স 'ওপেন গ্রুপের একটি ট্রেডমার্ক। ইউনিক্স এবং ইউনিক্স গ্রিনস.আর.আউট
ctrl-alt-delor

5

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

হয় আপনার কোনও এক্সটেনশন বা ব্যবহার থাকতে পারে .sh

আমি ব্যক্তিগতভাবে নিম্নলিখিত কনভেনশনগুলি ব্যবহার করি, শেলটি ব্যবহার না করেই (সিএসএস, টিসিএসসি, ব্যাশ, শ, ...):

  • সিস্টেম বা উচ্চ গ্রেড স্ক্রিপ্টগুলির জন্য কোনও এক্সটেনশন নেই (অত্যন্ত বিরল)।
  • .shসর্বোত্তম স্ক্রিপ্টের জন্য, হাই গ্রেড কম।

"ক্লাসিক স্ক্রিপ্টস, নিম্ন থেকে উচ্চ গ্রেড" বলতে কী বোঝ?
পেসারিয়ার

আমি মনে করি এর দ্বারা আমি বিমূর্ততা বা সংস্থার স্তর বোঝাতে চাইছি। এটি হ'ল কিছু কমান্ডের পিছনে কোন ভাষা / স্ক্রিপ্ট সরঞ্জামটি ব্যবহার করা হয় তা আপনার যত্ন নেই: সুতরাং আপনি কোনও এক্সটেনশন ব্যবহার করবেন না। অন্যদের জন্য, এটি জেনে রাখা ভাল যে এটি বাশ বা কিছু বিদেশী ksh শেল স্ক্রিপ্ট (সঠিক এক্সটেনশান সহ)। ... তবে এটি 2 বছর আগে ছিল;)
ওউকি

5

এক্সিকিউটেবলের জন্য আপনার কোনও এক্সটেনশন ব্যবহার করা উচিত নয়, কারণ তারা বিনিময়যোগ্য নয়। কল্পনা করুন যে আপনার কাছে একটি শেল স্ক্রিপ্ট রয়েছে a.sh, তারপরে অজগরটিতে আবার লিখুন a.py, আপনাকে এখন প্রতিটি প্রোগ্রাম পরিবর্তন করতে হবে যা আপনাকে স্ক্রিপ্ট বলে, আপনি বাস্তবায়ন বিশদটি ফাঁস করেছেন।

মিরকোসফ্টের উইন্ডোজের পুরো ফাইল-নাম এক্সটেনশন জিনিসটি একটি গোলযোগ: উদাহরণস্বরূপ যা হতে পারে a.audio, b.audio, c.audio, যা ছিল a.mp3, b.wav, c.oggএবং d.picture, e.picture, f.pictureতা d.jpeg, e.png, f.gif। অডিও বা ছবি কোন ফর্ম্যাটটিতে রয়েছে তা বেশিরভাগ সময় আমরা যত্ন করি না new নতুন ব্যবহারকারীদের সমস্ত ফাইল এক্সটেনশন শেখানোর জন্য আমাদের দীর্ঘ সময় ব্যয় করতে হবে।


*.shআমি কেবল এটি ব্যবহার না করার আরেকটি কারণ হ'ল ডেবিয়ান run-partsএক্সটেনশানগুলির সাথে স্ক্রিপ্টগুলি চালাবে না, যেমন /etc/cron.*/: আর্কাইভ.ওরিলি
রস প্যাটারসন

3

শেল স্ক্রিপ্ট এক্সটেনশনগুলি বেশ কার্যকর। উদাহরণস্বরূপ, আমি প্রায়শই একই স্ক্রিপ্টগুলিতে একাধিক ভাষায় একাধিক ফাইল (যেমন: bash, awk এবং lua) লিখি। আমার যদি কেবল বাশ ফাইলগুলিতে স্ট্রিং অনুসন্ধান করতে হয় তবে মিথ্যা ধনাত্মক হ্রাস করতে এক্সটেনশনটি এটিকে খুব সহজ করে তোলে। বা যদি আমি সেই প্রকল্পের জন্য আমার সমস্ত ব্যাশ কোডের একটি লাইন গণনা করতে চাই।

প্রোগ্রামটি চলাকালীন এক্সটেনশানটি টাইপ করতে কষ্ট হয়, তাই আমি প্রতিটি এক্সটেনশন টাইপ না করে সম্পাদনা / চালানোর জন্য মূল এক্সিকিউটেবলের কাছে এক্সটেনশন ছাড়াই একটি সিমিলিংকও তৈরি করি। সিমলিংকগুলি সস্তা এবং সহজ।



2

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

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