একটি .sh ফাইল কি?


91

সুতরাং আমি ফাইল ধরণের আধিক্য নিয়ে কাজ করার অভিজ্ঞতা অর্জন করি না এবং .shফাইলগুলি কী তা সম্পর্কে আমি খুব বেশি তথ্য খুঁজে পাইনি । আমি যা করার চেষ্টা করছি তা এখানে:

আমি মানচিত্রের ডেটা সেটগুলি ডাউনলোড করার চেষ্টা করছি যা টাইলগুলিতে সাজানো থাকে যা পৃথকভাবে ডাউনলোড করা যায়: http://daymet.ornl.gov/gridded

একবারে একাধিক টাইলস ডাউনলোড করতে, তারা তাদের স্ক্রিপ্টটি ডাউনলোড করতে বলে, যা শেষ পর্যন্ত বাড়ে daymet-nc-retrieval.sh: https://github.com/daymet/scriptts/blob/master/Bash/daymet-nc-retrieval.sh

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

আমি নিশ্চিত যে এই ফাইলগুলি এখানে কী করা উচিত সে সম্পর্কে একটি সহজ ব্যাখ্যা রয়েছে, তবে মনে হচ্ছে এটি প্রচুর পোস্টে সমাহিত হয়েছে যেখানে লোকেদের ইতিমধ্যে ধরে নেওয়া হচ্ছে যে এই ফাইলগুলির সাথে কী করবেন। কেউ সহজেই বলতে চান যে কোডটি পৃষ্ঠাতে আসার পরে এটি বাস্তবায়নের জন্য বর্গাকার এক থেকে কী করা দরকার? ধন্যবাদ


7
.sh এক্সটেনশনটি শেল স্ক্রিপ্টের জন্য।
রাই.স্কুমার

4
আপনি কি ইউনিক্স সিস্টেমে আছেন? কারণ অন্যথায় script স্ক্রিপ্টটি খুব বেশি সাহায্য করবে না।
মেলপোমেন

উত্তর:


51

আপনি যদি একটি ব্রাউজারে আপনার দ্বিতীয় লিঙ্কটি খুলেন তবে আপনি উত্স কোডটি দেখতে পাবেন:

#!/bin/bash
# Script to download individual .nc files from the ORNL
# Daymet server at: http://daymet.ornl.gov

[...]

# For ranges use {start..end}
# for individul vaules, use: 1 2 3 4 
for year in {2002..2003}
do
   for tile in {1159..1160}
        do wget --limit-rate=3m http://daymet.ornl.gov/thredds/fileServer/allcf/${year}/${tile}_${year}/vp.nc -O ${tile}_${year}_vp.nc
        # An example using curl instead of wget
    #do curl --limit-rate 3M -o ${tile}_${year}_vp.nc http://daymet.ornl.gov/thredds/fileServer/allcf/${year}/${tile}_${year}/vp.nc
     done
done

সুতরাং এটি একটি বাশ স্ক্রিপ্ট। লিনাক্স পেয়েছি?


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


4
আমার লিনাক্স নেই, আমি উইন্ডোজ 7. এ চালাচ্ছি এটি কি কেবল লিনাক্স ব্যবহারকারীদের জন্য উপলব্ধ?
টনি এইচ

7
এটি উইন্ডোজ ব্যতীত বেশিরভাগ অপারেটিং সিস্টেমে (লিনাক্স, ইউনিক্স, ম্যাকোস ...) উপলভ্য।
vlvaro González

4
আমি উইন্ডোতে বাশ স্ক্রিপ্টগুলির জন্য একটু অনুসন্ধান করেছি এবং দেখে মনে হচ্ছে যে এই বিষয়টি কিছুটা কভার করা হয়েছে: stackoverflow.com/questions/6413377/… এটি কীভাবে কাজ করে তা দেখার জন্য আমি চেষ্টা করব।
টনি এইচ

4
লিনাক্স পেয়েছি? দিনের সেরা উত্তর:)
অ্যাডাম এরিকসন

121

এক্সটেনশন সহ একটি ফাইল কী?

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

#!/path/to/interpreter

তারা সেই নির্দিষ্ট দোভাষী ব্যবহার করবে। আপনার ফাইলের প্রথম লাইন রয়েছে:

#!/bin/bash

এবং এর অর্থ এটি বোর্ন অ্যাগেইন শেল, তথাকথিত বাশ ব্যবহার করে। এটি সমস্ত ব্যবহারিক উদ্দেশ্যে ভাল পুরানো sh এর প্রতিস্থাপন।

দোভাষীর উপর নির্ভর করে আপনার আলাদা আলাদা ভাষা থাকবে যেখানে ফাইলটি লেখা আছে।

মনে রাখবেন, ইউনিক্স বিশ্বে ফাইলটি কী তা নির্ধারণ করে তা ফাইলের সম্প্রসারণ নয় (শেল স্ক্রিপ্টটি কীভাবে কার্যকর করা যায় তা দেখুন)।

আপনি ডস / উইন্ডোজের জগত থেকে এসে থাকলে আপনি .bat বা .Cmd এক্সটেনশন (ব্যাচের ফাইল) থাকা ফাইলগুলির সাথে পরিচিত হবেন। এগুলি সামগ্রীতে সমান নয়, তবে নকশার মতো।

কীভাবে শেল স্ক্রিপ্ট চালানো যায়

কিছু নির্বাক অপারেটিং সিস্টেমের বিপরীতে, * নিক্স কোনও ফাইলের সাথে কী করবেন তা নির্ধারণ করতে এক্সটেনশনের উপর একচেটিয়াভাবে নির্ভর করে না। অনুমতিগুলিও ব্যবহৃত হয়। এর অর্থ হ'ল আপনি যদি শেল স্ক্রিপ্টটি ডাউনলোড করার পরে চালানোর চেষ্টা করেন তবে এটি কোনও পাঠ্য ফাইল "চালানোর" চেষ্টা করার মতোই হবে। ".Sh" এক্সটেনশানটি কেবল সেই ফাইলটি স্বীকৃতি দেওয়ার জন্য আপনার সুবিধার্থে।

আপনার ফাইলটি কার্যকর হতে হবে। ধরে নেওয়া যাক যে আপনি নিজের ফাইলটি ডাউনলোড করেছেন তেমন file.sh, আপনি তারপরে আপনার টার্মিনালে চালাতে পারেন:

chmod +x file.sh

chmodফাইলের অনুমতি পরিবর্তন করার জন্য একটি আদেশ, +xচালানো অনুমতিগুলি নির্ধারণ করে (সবার ক্ষেত্রে এই ক্ষেত্রে) এবং শেষ পর্যন্ত আপনার ফাইলের নাম রয়েছে।

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

এক্সউবুন্টুতে ফাইল অনুমতি

আপনি অনুমতি পরিবর্তন করতে ইচ্ছুক না হলে। আপনি শেলটি কমান্ডটি চালাতে বাধ্য করতে পারেন। টার্মিনালে আপনি চালাতে পারেন:

bash file.sh

শেলটি আপনার স্ক্রিপ্টের প্রথম লাইনের মতোই হওয়া উচিত।

এটা কতটা নিরাপদ?

আপনি এটি অদ্ভুত দেখতে পাচ্ছেন যে কোনও ফাইল কার্যকর করার জন্য আপনাকে অন্য কোনও কাজ ম্যানুয়ালি করতে হবে। তবে এটি আংশিকভাবে সুরক্ষার জন্য জোরালো প্রয়োজন because

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

দুর্ভাগ্যক্রমে উপরের সতর্কতাটি বাদ দিয়ে আমি আপনার কম্পিউটারের সাথে খারাপ জিনিসগুলি যাতে ঘটেছিল তা রোধ করতে আপনার কী করা উচিত তা ধাপে ধাপে ধাপে বর্ণনা দিতে পারছি না; সুতরাং কেবল মনে রাখবেন যে আপনি যখনই বলছেন আসলে কারও কাছ থেকে এক্সিকিউটেবল ফাইলটি পাওয়া ও চালানো হয়, "অবশ্যই, আপনি কিছু করার জন্য আমার কম্পিউটারটি ব্যবহার করতে পারেন"।


10
এটি নির্বাচিত উত্তর হওয়া উচিত।
পেসারিয়ার

36

shফাইলগুলি ইউনিক্স (লিনাক্স) শেল এক্সিকিউটেবল ফাইল, সেগুলি batউইন্ডোতে থাকা ফাইলগুলির সমতুল্য (তবে আরও অনেক শক্তিশালী) ।

সুতরাং আপনার এটি একটি লিনাক্স কনসোল থেকে চালানো দরকার, কেবল উইন্ডোতে ব্যাট ফাইলগুলির সাথে আপনার নামটি টাইপ করুন।


4
নির্দিষ্ট ওএসের উপর নির্ভর করে আপনার চালনার দরকার হতে পারেchmod +x file.sh
প্রণব এ।

আমি বলব বাশ উইন্ডোজের জন্য আরও ভিবিএসের মতো, উইন্ডোগুলির জন্য ব্যাচ নয় কারণ ব্যাচটি ডসের ভাষা ছিল।
স্যুইচ করুন

4

সাধারণত .sh ফাইল হ'ল শেল স্ক্রিপ্ট যা আপনি টার্মিনালে চালাতে পারেন। বিশেষত, আপনি যে স্ক্রিপ্টটি উল্লেখ করেছেন তা হ'ল বাশ স্ক্রিপ্ট, যা আপনি ফাইলটি খোলার পরে ফাইলের প্রথম লাইনে সন্ধান করেন কিনা, যা শেবাং বা যাদু লাইন বলে।


1

আমি জানি এটি একটি পুরানো প্রশ্ন এবং আমি সম্ভবত সাহায্য করব না, তবে অনেকগুলি লিনাক্স ডিস্ট্রিবিউশনের (যেমন, উবুন্টু) একটি "লাইভ সিডি / ইউএসবি" ফাংশন রয়েছে, তাই যদি আপনাকে সত্যিই এই স্ক্রিপ্টটি চালানোর দরকার হয়, আপনি নিজের কম্পিউটারটি বুট করার চেষ্টা করতে পারেন লিনাক্সে। ফ্ল্যাশ ড্রাইভে কেবল একটি .iso বার্ন করুন (এখানে http://goo.gl/U1wLYA কীভাবে হয় ), প্লাগ ইন করা ড্রাইভটি দিয়ে আপনার কম্পিউটারটি শুরু করুন এবং বুট মেনুটির জন্য এফ কী টিপুন। আপনি যদি "... ইউএসবি ..." চয়ন করেন তবে আপনি কেবলমাত্র ড্রাইভে চালিত ওএসে বুট করবেন।


তবে ফাইলটি কেবলমাত্র লাইভ সংস্করণে চালিত হবে। ব্যবহারকারীর ফাইলগুলি প্রধান ওএস (উইন্ডোজ) এর পিছনে অনুলিপি করতে হবে।
প্রণব এ।

-2

টার্মিনালে লোকেশনটি খুলুন তারপরে এই কমান্ডগুলি টাইপ করুন ১। chmod + x filename.sh 2. ./filename.sh এটাই

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