তার সম্পূর্ণ পাথ ব্যবহার না করে টার্মিনাল থেকে একটি নির্দিষ্ট প্রোগ্রাম চালানো যাবে না


9

আমি একটি প্রোগ্রাম চালাতে চান ds9 টার্মিনাল থেকে। প্রোগ্রাম পরিষ্কারভাবে PATH, যা আমি চলমান দ্বারা নির্ধারিত হয়:

which ds9
/Users/evgenii/miniconda3/envs/iraf/bin/ds9

কিন্তু যখন আমি টাইপ করে কমান্ড রান করি ds9, এটা আমাকে নিম্নলিখিত ত্রুটি দেখায়:

-bash: /Applications/ds9.app/Contents/MacOS/ds9: No such file or directory

নিম্নোক্ত সম্পূর্ণ পথটি ব্যবহার করে আমি এখনও এটি কার্যকর করতে পারি:

/Users/evgenii/miniconda3/envs/iraf/bin/ds9

কি হচ্ছে? কেন এটা চালানোর চেষ্টা করা হয় /Applications/ds9.app?

নিম্নরূপ অনুমতি দেওয়া হয়:

-rwxrwxr-x@ 1 evgenii  staff  18613852  9 Nov 20:13 /Users/evgenii/miniconda3/envs/iraf/bin/ds9

হালনাগাদ:

এখানে চলমান আউটপুট type -a ds9 কমান্ড প্রয়োগ করুন:

type -a ds9
ds9 is aliased to `/Applications/ds9.app/Contents/MacOS/ds9 -xpa no'
ds9 is /Users/evgenii/miniconda3/envs/iraf/bin/ds9

4
ব্যবহার করবেন না which। এটি একটি বহিরাগত প্রোগ্রাম, তাই এটি শেল উপনাম সম্পর্কে বলতে পারে না।
Barmar

কমান্ড সঙ্গে কাজ করার জন্য প্রণালী: ব্যবহার PATH বরং alias এবং type বরং which
daniel Azuelos

উত্তর:


19

কমান্ড দৃশ্যত একটি ভাঙ্গা উপনাম থেকে aliased হয়। প্রথম, জন্য সব ম্যাচ চেক করুন ds9 মধ্যে PATH নিম্নোক্ত কমান্ডটি কার্যকর করে পরিবেশ পরিবর্তনশীল:

type -a ds9

আপনার আপডেট প্রশ্ন অনুযায়ী, এটি আউটপুট থেকে স্পষ্ট type -a ds9 আদেশ, যে একটি উদীয়মান প্রকৃত কমান্ড shadowing হয়।

উপনাম উপেক্ষা করে এবং সম্পূর্ণ পথ নির্দিষ্ট না করে প্রকৃত কমান্ডটি চালানোর জন্য, একটি প্রি-আপ করুন \ (ব্যাকস্ল্যাশ) কমান্ড আগে অক্ষর। এই কোনো bash সংজ্ঞায়িত উদীয়মান উপেক্ষা করে।

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


1
দ্য ds9 উদীয়মান সংজ্ঞা সম্ভবত সবচেয়ে ~/.bashrc এবং সেখানে সরানো উচিত (কারণ এটি একটি সমস্যা যা এই ধরনের নেতৃস্থানীয় একটি খারাপ পদ্ধতি)। grep ds9 ~/.bashrc এটা নিশ্চিত করবে।
daniel Azuelos

4

আমি এই প্রশ্নকর্তা জন্য সমাধান করা হয়েছে দেখতে, কিন্তু ভবিষ্যতে পাঠকদের জন্য আমি উল্লেখ করতে চাই যে এটা হতে পারে যে কমান্ড ছিল কুচি-কুচি করিয়া কাটা বস্তু এবং তারপর ফাইল মুছে ফেলা। (দেখুন help hash তথ্যের জন্য।)

type -a commandname আপনাকে দেখাবে না, শুধুমাত্র type commandname ইচ্ছাশক্তি.

এক্ষেত্রে, hash -d ds9 প্রয়োজন হবে যে সব হতে হবে।

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