ম্যাক ওএস এক্স এর ব্যাশ /opt/local/etc/bash_completion.d পথ থেকে সমস্ত ব্যবহারকারীর (ট্যাব-সমাপ্তি স্ক্রিপ্ট) স্ক্রিপ্টগুলি পড়বে?


3

আমি "প্রো গিট" বইয়ের কিছু নির্দেশকে হোঁচট খেয়েছি

এটা প্রস্তাহ করা যাচ্ছে:

  1. এই ফাইলটি ডাউনলোড করুন: https://github.com/git/git/blob/master/contrib/completion/git-completion.bash

    আপনি যদি শ্যাশ শেল ব্যবহার করেন তবে গিটটি একটি দুর্দান্ত স্বয়ংক্রিয়-সমাপ্তি স্ক্রিপ্ট নিয়ে আসে যা আপনি সক্ষম করতে পারেন। এটি সরাসরি গিট সোর্স কোড থেকে https://github.com/git/git/blob/master/contrib/completion/git-completion.bash এ ডাউনলোড করুন । আপনার হোম ডিরেক্টরিতে এই ফাইলটি অনুলিপি করুন এবং আপনার .bashrcফাইলে এটি যুক্ত করুন:

    উত্স g / গিট-সমাপ্তি.বাশ

    উত্স https://github.com/progit/progit/blame/master/en/02-git-basics/01-chapter2.markdown#L1115

    (এই লাইনটি .bashrc এ স্থাপন করা ম্যাক ওএস এক্স সিস্টেমে কাজ করবে না যা আমি এখানে আলোচনা করেছি: কেন ম্যাক ওএস এক্স উত্স doesn't / .bashrc নয়? )

  2. এই ফাইলটি রাখুন git-completion.bash( /opt/local/etc/bash_completion.dযদি আপনি ব্যাশ সমাপ্তি চান (গিট কমান্ডের জন্য) সমস্ত ব্যবহারকারীর অ্যাকাউন্টে কাজ করতে পারেন ((যেন বাশটি সমস্ত স্ক্রিপ্টগুলি এতে পড়ে /opt/local/etc/bash_completion.d))

    আপনি যদি সমস্ত ব্যবহারকারীর জন্য বাশ শেল সমাপ্তির জন্য গিট সেট আপ করতে চান তবে এই স্ক্রিপ্টটি /opt/local/etc/bash_completion.dম্যাক সিস্টেমগুলির /etc/bash_completion.d/ডিরেক্টরিতে বা লিনাক্স সিস্টেমের ডিরেক্টরিতে অনুলিপি করুন। এটি স্ক্রিপ্টগুলির একটি ডিরেক্টরি যা শ্যাশ কমপ্লিটেশন সরবরাহ করতে বাশ স্বয়ংক্রিয়ভাবে লোড হবে।

    সূত্র: https://github.com/progit/progit/blame/master/en/02-git-basics/01-chapter2.markdown#L1119


আমি জানতে পেরেছি যে ম্যাক ওএসের ব্যাশ ভিতরে স্ক্রিপ্টগুলি পড়েন না/opt/local/etc/bash_completion.d । আমি ফাইলটি সেখানে রেখেছি (আমি সমস্ত ফোল্ডার তৈরি করেছি, কারণ সেগুলির অস্তিত্ব ছিল না): টার্মিনাল প্রম্পটটি দেখায় যে গিট-সমাপ্তি bবাশ বিদ্যমান এবং উপযুক্ত পথে path

এবং গিট সম্পূর্ণতা কোনও অ্যাকাউন্টে কাজ করে না।

ম্যাক ওএস এক্স এর ব্যাশ থেকে সমস্ত ব্যবহারকারীর জন্য স্ক্রিপ্টগুলি পড়ে /opt/local/etc/bash_completion.d?

"প্রো গিট" বইটি কি ভুল? আমি কি তাদের গিথুব পৃষ্ঠায় এটি রিপোর্ট করতে পারি?

নাকি আমি ভুল করছি?

উত্তর:


1

বাশ কেবল আপনার হোম ডিরেক্টরিতে ডিফল্টরূপে স্ক্রিপ্টগুলি পড়তে পারে, বা যদি সেগুলি অনুপস্থিত থাকে /etc। বাশের ডকুমেন্টেশন দেখুন । যদি ওএসএক্স এর টার্মিনাল.এপ ব্যবহার করে তবে ডিফল্টরূপে এটি পড়ে ~/.bash_profile

লিনাক্স বা অন্যান্য ওএসের সমস্ত ব্যাশের ক্ষেত্রে এটি সত্য।

অন্য ডিরেক্টরি থেকে পড়ার জন্য উদাহরণস্বরূপ /opt/local/etc/bash_completion.dআপনাকে সেখানের ফাইলগুলি উত্সতে সূচনা করতে (যেমন অন্তর্ভুক্ত) করতে হবে

স্ক্রিপ্টের নির্দেশাবলীর উল্লেখ নেই /opt/local/...যে কোন ইউনিক্সে কোন মানক অবস্থান নয়। (অ-মানক দ্বারা এটি তৃতীয় পক্ষের প্যাকেজগুলির দ্বারা ব্যবহারের অনুমতি দেওয়া হয়েছে তবে সেখানে কী থাকতে হবে তা নির্ধারণ করা হয়নি) তারা বলে

  1. এই ফাইলটি কোথাও অনুলিপি করুন (যেমন ~/.git-completion.sh)।
  2. আপনার .bashrc/ .zshrc: এ নিম্নলিখিত লাইনটি যুক্ত করুন

    source ~/.git-completion.sh
  3. বর্তমান শাখাটি দেখানোর জন্য আপনার PS1 পরিবর্তন করার বিষয়টি বিবেচনা করুন, বিশদর git-prompt.shজন্য দেখুন।

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

অন্য কোনও কিছুই এটি ব্যবহার না করায় তিনিও সেই পথটি বেছে /etcনেন এবং আপনার ওএস এক্স-এ ফাইলগুলি সম্পাদনা করা উচিত নয় কারণ অ্যাপলের ওএস আপগ্রেডগুলি সেগুলি ওভাররাইট করতে পারে যাতে আপনাকে অন্য কোনও স্থান চয়ন করতে হবে। (আমি /usr/localম্যানুয়ালি রক্ষণাবেক্ষণ করা স্ক্রিপ্টগুলি বোঝাতে চেয়েছি সেখানে কিছু চয়ন করতাম) chosen

~/.bashrcউত্সটি সম্পাদনা এবং যুক্ত করার সঠিক স্থান is আপনার অন্য প্রশ্ন ও সেট আপ করার জন্য ব্যাশ ম্যানুয়াল দেখুন ~/.bash_profileব্যাশ প্রস্তাব পথ উৎস .bashrcমধ্যে .bash_profile। নোট করুন যে ওএস এক্স-এ টার্মিনাল.এপ ব্যবহার করা শেলগুলি চালানোর এক উপায় নয় তাই এখানে সেশনগুলি শুরু হতে পারে .bashrc


"যদি ওএসএক্সের টার্মিনাল.এপ ব্যবহার করা হয় তবে ডিফল্টরূপে এটি reads / .bash_profile পড়ে" এটি বরং -> "ফাইলটি [/ etc / প্রোফাইল] পড়ার পরে, এটি ~ / .bash_profile, ~ / .bash_login এবং ~ / এর সন্ধান করে। প্রোফাইল, সেই ক্রমে, এবং উপস্থিত এবং পঠনযোগ্য যা প্রথমটি থেকে আদেশগুলি পড়ে এবং কার্যকর করে। " সূত্র: gnu.org/software/bash/manual/bashref.html#Bash- স্টার্টআপ- ফাইলেস
পল ব্রউভজাইন্স্কি

-> "আপনি যদি সমস্ত ব্যবহারকারীর জন্য বাশ শেল সমাপ্তির জন্য গিট সেট আপ করতে চান তবে এই স্ক্রিপ্টটি /opt/local/etc/bash_completion.d এ অনুলিপি করুন"। এই বাক্যটি কি "সকল ব্যবহারকারী" এমন কি কিছু উত্স হিসাবে বোঝানো হয়েছিল? সম্ভবত আমার ইংরেজি বুঝতে সমস্যা হয়েছে (সত্যিই) তবে আমি এখানে "গিট সেট আপ করতে স্বয়ংক্রিয়ভাবে বাশ শেল সমাপ্তি" বাক্যাংশটি দেখতে পাচ্ছি যা আমার জন্য, এটি কেবলমাত্র কাজ করবে (আমি এই ফোল্ডারে যা রেখেছি তা ব্যবহারকারী স্যোসিং না করে)
পল ব্রেকউইকনস্কি

কোনও ব্যবহারকারীর পরিবর্তে সমস্ত ব্যবহারের অর্থ এই নয় এবং এর অর্থ এটি কেবল কাজ করে না
মার্ক

0

কোর ব্যাশ সমাপ্তি ফাইলগুলি ওএস এক্সের অংশ হিসাবে ইনস্টল করা নেই তাই কোর দ্বারা বাছাইয়ের জন্য আপনার গিটের সম্পূর্ণতা যুক্ত করার মতো কোথাও নেই।

আমি ক্ষমা চাইছি তবে আমি নিশ্চিত নই যে আমি কীভাবে বাশ সম্পূর্ণতা ইনস্টল করেছি তবে আমি মনে করি যে আমি ম্যাকপোর্টগুলি ব্যবহার করেছি, আপনি হোমব্রিউও ব্যবহার করতে পারেন।

আমি কি করতে ফোল্ডার আছে /usr/local/opt/bash-completion/etc/bash_completion.dযা কমান্ড লাইন টুলস একটি সংখ্যা জন্য সমাপ্তির ফাইল রয়েছে। Bash_completion ফাংশন অবশ্যই এই ডিরেক্টরিতে সমস্ত ফাইল পড়ে।

সুতরাং আপনাকে প্রথমে ব্যাশ-সমাপ্তি ইনস্টল করতে হবে তারপরে গিট সমাপ্তির ফাইল এবং সমস্ত ঠিকঠাক হবে।


আপনি কি ব্যাশ সমাপ্তি স্ক্রিপ্টগুলিতে লিঙ্ক করতে পারবেন? এবং নিশ্চিত করুন যে "প্রো গিট" বইয়ের এই অনুচ্ছেদটি ভুল, এবং তাকে অবহিত করা উচিত (সুতরাং অন্যান্য লোকেরা এই বিষয়ে আর জিজ্ঞাসা করতে সময় ব্যয় করবেন না)
পল ব্রেউজাইন্স্কি

এটি ভুল যে ওএস এক্স অন্তর্নির্মিত সম্পূর্ণতার সাথে আসে না hand
টনি উইলিয়ামস

আমি বুঝতে পারি যে ম্যাক ওএস এক্সে সমস্যা আছে তবে আমি মনে করি এটি বইতে না দেখানো ঠিক নয়।
পল ব্রুউকজিনস্কি

এখানে ওএসএক্স নিয়ে সমস্যা নেই, এটি সমস্ত প্রাসঙ্গিক মান পূরণ করে।
চিহ্নিত করুন

যদি, / usr / স্থানীয় তারপর এটি macports দ্বারা ইনস্টল করা হয়নি মধ্যে
মার্ক

0

যেহেতু উপরের উত্তরগুলির মধ্যে আপনার চেকটি পাওয়া যায় নি, কেন সেখান থেকে সরানো হবে না zshযেখানে আরও সমান সমাপ্তির স্ট্যাক রয়েছে।

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

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