বাশ স্ক্রিপ্ট এল ক্যাপিটান পাওয়া যায় না


1

আমি কেবল একটি বাশ স্ক্রিপ্ট তৈরি করেছেন যা কেবল করে ls -l

ম্যাভারিক্স এবং ওএসএক্সের পুরানো সংস্করণগুলিতে আমি কেবল স্ক্রিপ্টে একটি সিমলিংক তৈরি করেছি এবং এটিতে রেখেছি /usr/bin ফোল্ডার ( ln -s ll.sh /usr/bin/ll ) এবং আমি তারপর স্ক্রিপ্ট ব্যবহার করে নির্বাহ করতে পারে ll কোন ফোল্ডার থেকে।

এল ক্যাপিটান আপগ্রেড করার পর থেকে আমি এই স্ক্রিপ্ট লোড করতে অক্ষম। আমি SIP নিষ্ক্রিয় করেছি যাতে আমি সিমলিংক তৈরি করতে সক্ষম হব এবং স্ক্রিপ্ট স্পষ্টভাবে কার্যকর হয়। অবস্থান ( /usr/bin ) অবশ্যই $ PATH তে এবং আমি এমনকি $ PATH তে স্ক্রিপ্টের জন্য একটি পথ যোগ করার চেষ্টা করেছি।

কিছুই কাজ মনে হচ্ছে, আমি পেয়ে যাচ্ছি -bash: ll: command not found

আমি $ PATH প্রতিটি আপডেটের পরে টার্মিনালটি পুনরায় চালু করেছি এবং আমি চেষ্টা করেছি source ~/.bash_profile কিন্তু কোন পার্থক্য হয় না।

সম্পাদনা: আমি স্ক্রিপ্টগুলির বর্তমান ডিরেক্টরিটি $ PATH এ যোগ করার চেষ্টা করেছি এবং এটিও একই ত্রুটি প্রদান করে। শেষ পর্যন্ত আমি আমার সব স্ক্রিপ্ট aliased যাতে তারা চালানো হবে।


যখন আপনি আপনার ll.sh চালানো এটা কাজ করে?
enzo

2
যদি সব ll.sh -script_ হয় করছে ls -l তারপর আপনি একটি ব্যবহার করা উচিত উপনাম পরিবর্তে. সেট alias ll='ls -l' মধ্যে ~/.profile অথবা ~/.bash_profile, যা আপনি ব্যবহার করছেন। দেখ 6.6 এলিয়াস মধ্যে বেস রেফারেন্স ম্যানুয়াল
user3439894

আমি ব্যবহৃত ls -l উদাহরণস্বরূপ, আমার বেশ কয়েকটি স্ক্রিপ্ট রয়েছে যা বিভিন্ন জিনিস করে। আমি তাদের সব জন্য একটি উপনাম করতে পারে কিন্তু আমি পূর্ববর্তী বাস্তবায়ন এখনও সম্ভব কিনা বিস্মিত। আমি .sh স্ক্রিপ্ট চালানো যদি এটা জরিমানা রান।
Interbred Monkey

1
কিছু জিনিস ... এখান থেকে এক্সটেনশন ব্যবহার করার দরকার নেই শেল স্ক্রিপ্ট , যেমন ll.sh কেবল হতে হবে ll। আমি একটি পৃথক ডিরেক্টরি আছে আমি আমার স্ক্রিপ্ট সব রাখা এবং যে ডিরেক্টরি পাথ নাম যোগ করুন $PATH। আমার কাছে সেই ডিরেক্টরীতে 150 টি স্ক্রিপ্ট আছে এবং একটিতে এক্সটেনশান নেই তবে এটি সমস্ত এক্সিকিউটেবল। কিছু এমনকি আছে symlinks (ফাইন্ডার Aliases না, এবং সঙ্গে বিভ্রান্ত করা হবে না bash aliases ) সুবিধার জন্য টার্মিনাল টাইপ সংক্ষিপ্ততর নাম। এইভাবে আমার সমস্ত স্ক্রিপ্টগুলি আরো কেন্দ্রীয়ভাবে অবস্থিত এবং সিস্টেম এক্সিকিউটেবলগুলির সাথে মিশ্রিত হয় না।
user3439894

আপনি কি প্রশ্নটি সম্পূর্ণ স্ক্রিপ্ট যোগ করতে পারেন দয়া করে? এবং আউটপুট ls -l /usr/bin/ll ?
nohillside

উত্তর:


1

আমি নিশ্চিত নই আপনার সেটআপের সাথে কী ভুল, কিন্তু একই জিনিসটি করার জন্য একটি ভিন্ন (সম্ভবত ভাল) উপায় বাশ এর মাধ্যমে alias কমান্ড। কমান্ড প্রম্পটে, টাইপ করুন:

alias ll="ls -l"

তারপর আপনি শুধু টাইপ করতে পারেন ll এবং একটি সম্পূর্ণ তালিকা পেতে। যদি আপনি এই স্থায়ী করতে চান, আপনি এটি মধ্যে রাখতে পারেন .bashrc আপনার হোম ডিরেক্টরিতে ফাইল, যা আপনি যদি তৈরি করতে পারেন তবে এটি ইতিমধ্যে বিদ্যমান নেই।


এটি একটি ফাইল অবস্থানের কমান্ডটি উপনাম করতে পারে তা উল্লেখ করাও মূল্যবান ll=~/scripts/ll.shযা আমি শেষ পর্যন্ত শেষ করেছি। সাহায্যের জন্য ধন্যবাদ!
Interbred Monkey

4

শুধু মন্তব্য পড়ুন এবং দেখুন যে আপনি নির্দিষ্ট উদাহরণের পরিবর্তে একটি সাধারণ সমাধান খুঁজছেন। এটি যদি আমার কাউকে সাহায্য করে তবে আমার আগের উত্তরটি ছেড়ে দেব, তবে এখানে আরও সাধারণ সমাধান।

পরামর্শ আমার প্রথম টুকরা: ছেড়ে /usr/bin একা। এটি সঙ্গে জগাখিচুড়ি করার কোন কারণ নেই এবং অনেক কারণ আছে না এটা সঙ্গে জগাখিচুড়ি। পরিবর্তে, অন্য কোথাও একটি ডিরেক্টরি যুক্ত করুন, সেখানে স্ক্রিপ্ট রাখুন এবং এটি আপনাকে যুক্ত করুন $PATH পরিবর্তনশীল। আপনি যদি শুধুমাত্র আপনার ব্যবহারকারীর জন্য এটি চান তবে আপনি এটি তৈরি করতে পারেন scripts অথবা bin আপনার হোম ডিরেক্টরিতে ডিরেক্টরি, অথবা যদি আপনি এটি বিশ্বব্যাপী উপলব্ধ করতে চান তবে আপনি এটির অধীনে রাখতে পারেন /usr/local, যেমন /usr/local/scripts অথবা /usr/local/bin। তারপর, মধ্যে .bashrc আপনার হোম ডিরেক্টরি ফাইল, নিম্নলিখিত যোগ করুন:

export PATH=$PATH:~/scripts:/usr/local/scripts

যদি আপনার কমান্ডগুলি কোনও সিস্টেম কমান্ডকে ওভাররাইড করে (তাদের একই নাম থাকা উচিত) তাহলে আপনি নিম্নলিখিতটি করতে পারেন, পরিবর্তে:

export PATH=~/scripts:/usr/local/scripts:$PATH

আপনি যদি সব ব্যবহারকারীর জন্য এই সেটটি চান তবে একটি বিশ্বব্যাপী আছে /etc/bashrc আপনি উপরে যোগ করতে পারেন যে ফাইল।

গ্লোবাল সম্পাদনা করার জন্য bashrc বা পরিবর্তন /usr/local আপনি রুট / অ্যাডমিন বিশেষাধিকার প্রয়োজন।


3
উল্লেখ্য যে / usr / local / bin ইতিমধ্যে ডিফল্ট PATH তে রয়েছে, তাই যদি আপনি সেখানে জিনিসগুলি রাখেন তবে আপনাকে PATH কাস্টমাইজ করার বিষয়ে চিন্তা করতে হবে না।
Gordon Davisson

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