শেল স্ক্রিপ্ট চালানোর সময় "কমান্ড পাওয়া যায় নি"। আমি কী ভাঙ্গলাম?


8

আমি ওএসএক্স স্নো চিতাবাঘে আছি।

এর সম্পূর্ণ বিষয়বস্তু এখানে grr.sh:

#!/bin/sh

echo wow

আমি যখন এটি টার্মিনাল থেকে চালানোর চেষ্টা করি:

$ grr.sh
-bash: grr.sh: command not found
$ /bin/sh grr.sh
wow
$ sh grr.sh
wow
$ bash grr.sh
wow

ঠিক আছে. যথেষ্ট ফর্সা। আমি এটি কার্যকর করার অনুমতি দেব, তারপরে আবার চেষ্টা করুন:

$ chmod +x grr.sh
$ grr.sh
-bash: grr.sh: command not found
$ chmod 755 grr.sh
$ grr.sh
-bash: grr.sh: command not found

হুম। আমি স্পষ্টভাবে বাশ ব্যবহার করলে এটি কাজ করবে? আমি ফাইলের বিষয়বস্তুগুলিকে এতে পরিবর্তন করব:

#!/bin/bash

echo wow

এবং আমি ঠিক একই ফলাফল পেতে। আমি কি ভেঙে দিতে পারতাম ?!

ত্য জ্যজ্জকিজ! আপনি যদি কৌতূহলী হন ...

$ which sh
/bin/sh

উত্তর:


19

একেবারে কিছুই না. কেবলমাত্র ডিরেক্টরিগুলির মধ্যে একটিতে এক্সিকিউটেবলগুলি $PATHসরাসরি চালানো যেতে পারে এবং .এটি সাধারণত হয় না $PATH। এক্সিকিউটেবলের পাথ নির্দিষ্ট করুন, যেমন ./grr.sh


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

আপনি 9 সেকেন্ড দ্বারা প্রথম ছিল! ধন্যবাদ!
বন্ধ কাউন্টি

আপনি আমার
ম্যাকবুকটি

8

$PATHপরিবর্তনশীল মধ্যে grr.sh এর অবস্থান ? যদি তা না হয় তবে আপনাকে প্রবেশ করতে হবে:

./grr.sh

আপনি grr.sh হিসাবে একই ফোল্ডারে থাকলে। যদি তা না হয় তবে তার সম্পূর্ণ পথ সরবরাহ করুন।


7

ফাইলটির অনুমতিগুলি ভুল। নিম্নলিখিত কমান্ড ব্যবহার করে দেখুন:

  $ chmod 777 file.sh
  $ ./file.sh

0

হ্যাঁ, এবং ./grr.sh এর অর্থ কী এই ডিরেক্টরিতে grr.sh কমান্ডটি চালান একক . কাজের ডিরেক্টরি মানে। অন্যথায়, আপনার শেল ধরেই নিয়েছে যে আপনি আপনার $ PATH এ কোনও কমান্ড চালানোর চেষ্টা করছেন।

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