উইন্ডোজে .sh ফাইলকে কীভাবে কার্যকর করা যায়?


67

কমান্ডের সাহায্যে কমান্ড লাইনে যখন একটি ফাইল (name.sh) চালানোর চেষ্টা করছি।

"।" অভ্যন্তরীণ বা বহিরাগত কমান্ড, অপারেবল বা ব্যাচ ফাইল হিসাবে স্বীকৃত নয়

দয়া করে আমাকে .sh ফাইলটি কার্যকর করতে সহায়তা করুন

উত্তর:


74

আপনি উইন্ডোজ সিএমডি.এক্সই (ত্রুটির বার্তা থেকে) এ আছেন। কমান্ডগুলি কার্যকর করতে এটি একটি পৃথক বাক্য গঠন ব্যবহার করে। sh name.shআপনাকে সাইগউইন বা অনুরূপ ইনস্টল করা আছে তা ধরে নিয়েই আপনাকে ব্যবহার করতে হবে ।

স্পষ্ট করতে, উইন্ডোজ .sh ফাইল সমর্থন করার জন্য একটি অন্তর্নির্মিত ইউটিলিটি নেই। এগুলি চালানোর জন্য আপনাকে সাইগউইনের মতো একটি তৃতীয় পক্ষের সরঞ্জাম ইনস্টল করতে হবে ।


7
আপনি কি কেবল উইন্ডোজে গিট ইনস্টল করতে পারবেন না? দেখে মনে হচ্ছে এটি করা শেল স্ক্রিপ্টগুলির জন্য সমর্থন যোগ করে এমনকি যদি সেই শেল স্ক্রিপ্টগুলি গিট-সম্পর্কিত কাজ না করে থাকে।
ডেভTheMinion

2
@ ডেভিডবি হ্যাঁ, এটি আপনার প্যাথে সি: \ প্রোগ্রাম ফাইল (x86) it গিট \ বিন (বা এটি আপনার কম্পিউটারে যা কিছু আছে) রাখলে কাজ করে, কারণ গিট সেখানে sh.exe সহ সমস্ত প্রকারের দরকারী সরঞ্জাম রাখে
সুমিরদা

1
@ ডেভিডবি হ্যাঁ, গিত বাশ জানেন এটির সাথে কী করা উচিত, সঠিক!
কিংবদন্তি

13

আপনি উইন্ডোজ কমান্ড প্রম্পটে একটি লিনাক্স কমান্ড চালানোর চেষ্টা করছেন।

লিনাক্সে ফরোয়ার্ড স্ল্যাশ হল একটি পথ বিভাজক। উইন্ডোজে ব্যাকস্ল্যাশ একটি পাথ বিভাজক এবং ফরোয়ার্ড স্ল্যাশ সাধারণত একটি যুক্তি নির্দেশ করে।

সুতরাং, উইন্ডোজ মনে করে যে আপনি "" নামে একটি কমান্ড চালানোর চেষ্টা করছেন। এবং এটি "/ name.sh" যুক্তিটি বিশ্লেষণ করে। সঠিক কনভেনশনটি "। \ Name.sh" হবে। অতিরিক্তভাবে উইন্ডোজ স্বয়ংক্রিয়ভাবে আপনার কমান্ডের জন্য বর্তমান ডিরেক্টরি অনুসন্ধান করবে যাতে আপনি কেবল "name.sh" টাইপ করতে পারেন।

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

তবে আপনার আগের মতামতের একটি বিবেচনা করে আপনি ঠিক পাশাপাশি নামটির জন্য স্ক্রিপ্টটির নাম পরিবর্তন করতে পারবেন bat এখন আপনার কাছে একটি ব্যাচ ফাইল রয়েছে যা উইন্ডোজকে বুঝতে হবে। আপনি এখানে ব্যাচ ফাইলগুলি সম্পর্কে আরও পড়তে পারেন ।


12

বিকল্পভাবে আপনি অন্ধকার দিকে ফিরে লিনাক্স ইনস্টল করতে পারে। প্রম্পট থেকে:

sh runide.sh

অথবা

sudo sh runide.sh

আপনার প্রোগ্রামটি চলবে এবং আপনার পাশাপাশি আরও ভাল একটি সিস্টেম থাকবে।


15
এটি বলার মতো, "কেবল ধনী হয়ে
উঠুন

7

আমার মতে সেরা সমাধান:

  • উইন্ডোজের জন্য .git ডাউনলোড ও ইনস্টল করুন

  • ডেস্কটপে ডান ক্লিক করুন এবং "গিট ব্যাশ এখানে" বলুন

  • ইউনিক্সের মতো আপনার স্ক্রিপ্টটি কার্যকর করুন

  • সম্পন্ন!

সাবধানতা: অনেক কমান্ড উইন্ডোতে কাজ করবে না! তবে তবুও, প্রচুর বেসিক স্টাফ কাজ করবে।

আপনার যদি নিয়মিত সেই স্ক্রিপ্টের প্রয়োজন হয় আপনি শর্টকাট তৈরি করতে চাইতে পারেন (আপনার ডেস্কটপে যেমন):

  • একটি শর্টকাট তৈরি করুন থেকে mintty.exeআপনার ডেস্কটপে

  • শর্টকাটের বৈশিষ্ট্যগুলি সম্পাদনা করুন এবং লক্ষ্যটি পরিবর্তন করুন (পথে রাখুন):

  • C:\Program Files\Git\usr\bin\mintty.exe" -h always /bin/bash -l -e 'D:\folder\script.sh'


এটি কাজ করে না। আমি যখন @FOR / f "টোকেনগুলি = *"% i IN ('ডকার-মেশিন এনভি - শেল সেন্টিমিডি ডিফল্ট') চালনা করি তখন ডিও @% i। আমি অপ্রত্যাশিত টোকেন পেয়েছি (
স্টিভ টমলিন

5

আপনি নিজের গাড়িটি পেট্রলের পরিবর্তে কমলার জুসে চালানোর চেষ্টা করছেন। উইন্ডোজ ইউনিক্স / লিনাক্স / জেডস ইউনিক্স সাবসিস্টেম / * আইএক্স শেল স্ক্রিপ্টগুলির সাথে .bat বা .Cmd ফাইলগুলিতে সঞ্চিত অনুরূপ কমান্ড শেয়ার করে কারণ অপারেটিং সিস্টেমের এই দুটি পরিবার একটি সাধারণ পূর্বপুরুষ ডিইসি পিডিপি-এক্স মেশিনগুলিকে ভাগ করে দেয়।

আপনি যদি তাত্ক্ষণিক সন্তুষ্টি চান তবে আপনার এমন পরিবেশ ইনস্টল করতে হবে যা "sh.exe" প্রোগ্রাম বা "csh.exe" বা "bash.exe" প্রোগ্রাম সরবরাহ করে (tsh.exe কাউকে?)

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


3

কেউ /কমান্ড এবং \পথের জন্য এমএস-ডস সম্পর্কে কিছু বলেছিলেন । এটি কিছুটা বিভ্রান্তিকর। আমার উদাহরণটি দেখুন:

C:\myfoo\foo\>cd../.. 
C:\myfoo\foo\>cd..\..

কার্যকর কোন পার্থক্য আছে। হ্যাঁ, সমস্ত ক্রিয়াকলাপের ক্ষেত্রে এটি সত্য নয় - আসল উত্তরটি কেবল না , বা সাইগউইন বা এসএসএইচডি ছাড়া আপনি পারবেন না।

আমি শুধু জানি, কারণ আমি বোকার মত অর্ধেক দিন অতিবাহিত জিনিসটা কি চেষ্টা if then fiএবং eval, execনা -Djava.somethingযখন বলা হয়।


2

উইন্ডোজের জন্য গিথুব ব্যবহার করুন। এটিতে ইউনিক্স পরিবেশের সমস্ত নির্বাহযোগ্য রয়েছে।

https://github-windows.s3.amazonaws.com/GitHubSetup.exe


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

ভাল বিকল্প, ধন্যবাদ, সুতরাং আরও সরঞ্জাম ইনস্টল করার প্রয়োজন হবে না। +1
গিলহার্ম ন্যাসিমেণ্টো

1

আমি একটি ভিন্ন এবং সহজ সমাধান পেয়েছি, যার নাম ইউনিক্সটিল

সি এবং ড্রাইভে এটি আনজিপ ডাউনলোড করুন। pathঅন্তর্ভুক্ত করতে পরিবেশের পরিবর্তনশীল সেট করুন C:\UnixUtils\usr\local\wbin

এটা গুরুত্বপূর্ণ. পথ নির্ধারণ করবেন নাC:\UnixUtils\bin


1

সম্পূর্ণতার জন্য আমি উইন্ডোজ 10. বিস্তারিত জানার জন্য একটি নতুন "উইন্ডোজ সাবসিস্টেম লিনাক্সের জন্য" বৈশিষ্ট্য উল্লেখ করতে চান বর্ণনা করা হয় http://www.howtogeek.com/249966/how-to-install-and-use-the-linux- ব্যাশ-শেল-অন-জানালা-10 /

দ্রষ্টব্য, এটির জন্য "বিকাশকারী মোড" স্যুইচ সক্রিয় করা প্রয়োজন এবং "উইন্ডোজ সাবসিস্টেম ফর লিনাক্স (বিটা)" বিকল্পটি সক্ষম করতে হবে।

নিজের জন্য আমি খুঁজে পেলাম যে উইন্ডোজ ইনস্টলেশন (যা আমি যেভাবেই ব্যবহার করছি) এর জন্য গিটই যথেষ্ট।


1

এটি একটি পুরানো থ্রেড তবে যারা উইন্ডোজ 10 চালাচ্ছেন তাদের জন্য কন্ট্রোল প্যানেল থেকে 'উইন্ডোজ বৈশিষ্ট্যগুলি চালু বা বন্ধ করুন' থেকে উইন্ডোজ বৈশিষ্ট্যগুলি কেবল খুলুন

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


0

সমস্যাটি আসলে ফাইলটির মধ্যেই রয়েছে name.sh- আপনি .কমান্ডটি ব্যবহার করার চেষ্টা করছেন তবে এটি একধরণের শেল চালানোর চেষ্টা করছেন (যেমন csh, আমি মনে করি) এটি কোনও বৈধ কমান্ড নয়।

সুতরাং: name.shসঠিক দিয়ে শুরু হয় #!/bin/sh(যদি আপনি আসলে চালানোর চেষ্টা করছেন sh)?


1
হ্যাঁ এটা # শুরু হবে / বিন / SH সিডি ডি: \ রঘু ডি: winzip32.exe -min -a -r ডি: \ পি ফাইলের বিষয়বস্তু thats!

0

ঠিক আছে, এতে খুব বেশি ভুল আছে - #! / বিন / শ ফেলে দিন, এবং ব্যাটিংয়ের জন্য এক্সটেনশনটি পরিবর্তন করুন এবং এটি আরও কয়েকটি সমাধানের সাথে কাজ করতে পারে। তারপরে আপনি এটির ফাইল নাম দ্বারা এটিও প্রার্থনা করতে পারেন।

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


drop the #!/bin/sh, and change the extention to bat, and it might work with a few more fixes.কি?! আমি সন্দেহ করি যে আপনি এটি কখনও চেষ্টা করেন নি ... উইন্ডোজে, এমনকি সহজতম ব্যাশ ক্ষমতাগুলি অসমর্থিত বা দীর্ঘ সিনট্যাক্সের প্রয়োজন।
কামিলো মার্টিন

দ্বিতীয় অনুচ্ছেদে ন্যায্য পরিমাণ কাজ ব্যতিরেকে, এটির কাজ না করার সম্ভাবনাটি রয়েছে covers
যাত্রামন গীক

ঠিক আছে, আপনি ঠিক বলেছেন।
কামিলো মার্টিন

0

আপনার বাড়িতে যদি লিনাক্স বাক্স থাকে (বা কাজ করা হয়) এবং একই নেটওয়ার্কে প্লাগ করা থাকে এবং এই নেটওয়ার্কটি নিরাপদ থাকে তবে এটি কৌশলটি করতে পারে:

  1. উইন্ডোজে একটি ফোল্ডার ভাগ করুন (বেশ সহজ, তবে অনুপ্রবেশকারীদের থেকে নেটওয়ার্ক নিরাপদ কিনা তা নিশ্চিত করুন)।
  2. এটি লিনাক্সে mount //WinMachine/Share LinuxFolder(আইআইআরসি, এবং সাম্বার প্রয়োজন ) সাথে মাউন্ট করুন ।
  3. পিটিটিওয়াইয়ের মতো কিছু ব্যবহার করে , সেই লিনাক্স বাক্সে দূর থেকে লগ ইন করুন।
  4. মাউন্ট করা ফোল্ডারে আপনার কমান্ডটি চালান।

0

উইন্ডো থেকে শেল স্ক্রিপ্ট চালানোর জন্য। প্রথমে কমান্ডটি ব্যবহার করুন: ডস 2 ইউনিক্স তারপরে আপনি আপনার সাধারণ কমান্ড: sh runide.sh ব্যবহার করতে পারেন

এটি কার্যকর হবে।


দুঃখিত, সামান্য সংশোধন করা দরকার। কমান্ডটি ব্যবহার করুন: "ডস 2 ইউনিক্স রানাইডেড.শ" আউটপুট: ডস 2 ইউনিক্স: ফাইল রানাইড.শকে ইউনিক্স ফর্ম্যাটে রূপান্তর করে তারপরে আপনি আপনার কমান্ডটি ব্যবহার করবেন: "sh runide.sh" এটি আপনাকে অবশ্যই শেল স্ক্রিপ্টটি চালাবে। সুখী শেখা
শ্রীধর জিভি

প্রশ্ন ফাইল ফর্ম্যাট সম্পর্কে নয়, বরং উইন্ডোতে শেলের অভাব সম্পর্কে।
আরচেমার

0

যদিও এখানে বিদ্যমান উত্তর সময় সঠিক ছিল, উইন্ডোজ 10 করে এখন ঐচ্ছিকরূপে অন্তর্ভুক্ত একটি পূর্ণ ব্যাশ শেল চলমান উবুন্টু একটি পরিমার্জিত সংস্করণ

একবার এক্সিকিউটেবল হয়ে গেলে, স্ক্রিপ্টগুলি ব্যাশের মধ্যে থেকে স্বাভাবিক উপায়ে চালানো যেতে পারে, যেমন:

chmod +x myscript.sh
./myscript.sh

আপনি যদি উইন্ডোজ থেকে সরাসরি স্ক্রিপ্ট চালাতে চান তবে আপনি একই ডিরেক্টরিতে একটি শর্টকাট তৈরি করতে এবং 'টার্গেট' এর মতো কিছুতে সেট করতে পারেন:

C:\Windows\System32\bash.exe -c "./myscript.sh"

যদি আপনার স্ক্রিপ্টের পথটি শর্টকাটের অবস্থানের সাথে সম্পর্কিত হয় (উপরের উদাহরণের মতো) 'স্টার্ট ইন' ক্ষেত্রটিও ফাঁকা রয়েছে তা নিশ্চিত করে।

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