আমার পাইথন স্ক্রিপ্টে আর্গুমেন্টের জন্য আমি কীভাবে বাশ বৈধ ট্যাব-সম্পূর্ণকরণ বলতে পারি


14

বলুন আমার কাছে একটি প্রোগ্রাম হ্যালো.পি এবং এটির একটি সম্ভাব্য বৈধ যুক্তি হ'ল:

./hello.py autoawesomesauce

টাইপ করা সম্ভব:

./hello.py auto[tab]

কোন পর্যায়ে আংশিকভাবে সমাপ্ত যুক্তি হ্যালোকে প্রেরণ করা হয়, যা এটিকে স্বীকৃতি দেয় এবং তারপরে এটি শেলের উপর সম্পূর্ণ করে:

./hello.py autoawesomesauce

আমি জানি গিট এই জাতীয় কিছু করে তবে এটি পাইথন স্ক্রিপ্ট + বাশের জন্য করা যায়?


4
পাইথন স্ক্রিপ্টটি পারে না। বাশ অবশ্যই

upvote ঠিক কি জন্য?

উত্তর:


7

লিনাক্স সিস্টেমগুলিতে, আপনি সাধারণত: এর অধীনে প্রচুর উদাহরণ স্ক্রিপ্টগুলি পেতে পারেন /etc/bash_completion.d। আপনি যদি এই স্ক্রিপ্টগুলি উত্স করেন তবে আপনি স্বতঃপূরণ আচরণ পাবেন।

আমি এই ডিরেক্টরি থেকে একটি উদাহরণ অন্তর্ভুক্ত করেছি। এটি আনরারের জন্য সমাপ্তির স্ক্রিপ্ট।

_unrar()
{
    local cur

    COMPREPLY=()
    _get_comp_words_by_ref cur

    if [[ "$cur" == -* ]] ; then
        COMPREPLY=( $( compgen -W '-ad -ap -av- -c- -cfg- -cl -cu \
            -dh -ep -f -idp -ierr -inul -kb -o+ -o- -ow -p -p- -r -ta \
            -tb -tn -to -u -v -ver -vp -x -x@ -y' -- "$cur" ) )
    else
        if [ $COMP_CWORD -eq 1 ]; then
            COMPREPLY=( $( compgen -W 'e l lb lt p t v vb vt x' -- "$cur" ) )
        else
            _filedir '@(rar|RAR)'
        fi
    fi

} &&
complete -F _unrar -o filenames unrar

কী _get_comp_words_by_ref?
ই তথ্য 128

4

পাইথনের সাথে এই কার্যকারিতাটির শূন্য রয়েছে। এটি আন্ডারলাইং শেলের বিশুদ্ধ কার্যকারিতা। সুতরাং স্বয়ংক্রিয়ভাবে সমাপ্তিতে ব্যাশ ডকগুলি পড়ুন।

গুগল "ব্যাশ অটো-সমাপ্তি" এর জন্য এবং আপনি প্রথম 10 হিটের অন্তত কমপক্ষে 5 যুক্তিসঙ্গত ডক্স পাবেন।


যার অর্থ ব্যাশ স্ক্রিপ্টে আপনার পাইথন স্ক্রিপ্টটি মোড়ানো ভাল ধারণা হতে পারে, বাশ স্ক্রিপ্টকে যতটা সম্ভব আর্গুমেন্ট পরিচালনা / পার্সিং করা সম্ভব।
কাজার্ক

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