নির্দিষ্ট কমান্ডগুলির জন্য একটি কাস্টম স্বয়ংক্রিয় পূর্ণতা কীভাবে নির্দিষ্ট করবেন?


25

আপনি যখন ডাবল ট্যাবটি প্রদর্শন করবেন তখন বাশকে ঠিক কীভাবে প্রদর্শন করবেন তা জানার কোনও উপায় আছে? উদাহরণস্বরূপ আমার কাছে একটি অজগর স্ক্রিপ্ট রয়েছে scpyযার জন্য কয়েকটি যুক্তি প্রয়োজন। উদাহরণস্বরূপ apt-get, যদি আপনি ডাবল ট্যাব দেয়

অটোক্লেন বিল্ড-ডিপ ক্লিন ডিলেক্ট-আপগ্রেড পুরেজ সোর্স আপগ্রেড
অটোরেমও চেক ডিস্ট-আপগ্রেড ইনস্টল রিমোট আপডেট  

আপনার নিজস্ব স্ক্রিপ্ট / প্রোগ্রামগুলির জন্য এটি করার কোনও উপায় আছে কি? আমার কি পাইথন স্ক্রিপ্টটি বাশ স্ক্রিপ্টে মোড়ানো দরকার?

উত্তর:


31

এটি করার সহজতম উপায় হ'ল শেল স্ক্রিপ্টটি এতে অন্তর্ভুক্ত করা /etc/bash_completion.d/। এই ফাইলটির প্রাথমিক কাঠামোটি একটি সাধারণ ফাংশন যা সমাপ্তি সম্পাদন করে এবং তারপরে completeযার প্রার্থনা একটি বাশ বিল্টিন। কীভাবে ব্যবহার করবেন সে সম্পর্কে বিশদে যাওয়ার পরিবর্তে complete, আমি আপনাকে পরামর্শ দিচ্ছি যে বাশ কমপ্লাইশনের একটি পরিচিতি পড়ুন । পর্ব 1 মূল বিষয়গুলি কভার করে এবং পর্ব 2 আপনি কীভাবে একটি সম্পূর্ণ স্ক্রিপ্ট লেখার বিষয়ে যান সে সম্পর্কে।

বাশ সম্পূর্ণ হওয়ার একটি সংক্ষিপ্ত বিবরণ পাওয়া যাবে man bash( প্রোগ্রামেবল কমপ্লিটেশন) বিভাগে (আপনি "/ প্রোগ্রামেবল কমপ্লিটেশন" টাইপ করতে পারেন এবং তারপরে দ্রুত সেখানে পৌঁছানোর জন্য কয়েকবার 'এন' টিপুন Or বা, যদি আপনি ভাগ্য বোধ করছেন, "জি) 2140 রিটার্ন ")।


8

এখানে বেসিক গাইড।

অ্যাডমিন.শ নামে পরিচিত স্ক্রিপ্টের একটি উদাহরণ দেওয়া যাক যাতে আপনি স্বতঃসম্পূর্ণ কাজ করতে চান।

#!/bin/bash

while [ $# -gt 0 ]; do
  arg=$1
  case $arg in
    option_1)
     # do_option_1
    ;;
    option_2)
     # do_option_1
    ;;
    shortlist)
      echo option_1 option_2 shortlist
    ;;
    *)
     echo Wrong option
    ;;
  esac
  shift
done

নোট বিকল্প শর্টলিস্ট। এই বিকল্পটির সাথে স্ক্রিপ্ট কল করা এই স্ক্রিপ্টের জন্য সমস্ত সম্ভাব্য বিকল্প মুদ্রণ করবে।

এবং এখানে আপনার স্বয়ংসম্পূর্ণ স্ক্রিপ্ট রয়েছে:

_script()
{
  _script_commands=$(/path/to/your/script.sh shortlist)

  local cur prev
  COMPREPLY=()
  cur="${COMP_WORDS[COMP_CWORD]}"
  COMPREPLY=( $(compgen -W "${_script_commands}" -- ${cur}) )

  return 0
}
complete -o nospace -F _script ./admin.sh

নোট করুন যে সম্পূর্ণ যুক্তিটি শেষ করতে হবে সেই স্ক্রিপ্টটির নাম যা আপনি স্বতঃপূরণ যোগ করতে চান। আপনাকে যা করতে হবে তা হ'ল বাশার্কে আপনার স্ব-পরিপূর্ণ স্ক্রিপ্ট যুক্ত করা

source /path/to/your/autocomplete.sh

অথবা /etc/bash.completion.d এ এটি অনুলিপি করুন

সূত্র: /ubuntu//a/483149/24155


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