Zsh- এ এলিয়াস, ফাংশন এবং ভেরিয়েবলের নাম তালিকাভুক্ত করুন


11

আমারে zsh এর উপকরণ, ফাংশন, ভেরিয়েবল, অ্যারের নামগুলি (বডি / সামগ্রী / মান ব্যতীত) তালিকা করার একটি উপায় প্রয়োজন। সর্বোত্তমভাবে এটির মতো আচরণ করা উচিত compgen:

compgen -a # will list all the aliases you could run.
compgen -A function # will list all the functions you could run.
compgen -A variable # will list all the variables defined.

পটভূমি

Env_parallel.zsh বিকাশ করার জন্য আমার এটি দরকার: https://www.gnu.org/software/parallel/env_parallel.html

উত্তর:


18

উপকরণ এবং ফাংশনগুলি এতে অন্তর্ভুক্ত থাকে aliasesএবং এর মধ্যে functionsএকটির কেবল কীগুলি মুদ্রণ করা দরকার। "ভেরিয়েবল এবং অ্যারে" কৌশলযুক্ত; parametersযথেষ্ট হতে পারে?

print -rl -- ${(k)aliases} ${(k)functions} ${(k)parameters}

(আপনি প্রয়োজন হতে পারে builtins, commandsএবং থেকে তালিকাভুক্ত সম্ভবত অন্যান্য বিষয়ের print -l ${(k)এবং তারপর mashing tab, সমাপ্তির অভিমানী সক্রিয় করা হয়।)


1
হতে পারে ${(kM)parameters:#[[:alpha:]_][[:alnum:]_]#}(সহ extendedglob) কেবলমাত্র প্যারামিটারগুলির জন্য যা ভেরিয়েবল।
স্টাফেন চেজেলাস

for k in ${(koM)parameters:#[[:alpha:]][[:alnum:]_]#}; do; [[ ${(M)parameters[$k]:#association*} ]] || continue; print -- "$k"; done( extendedglobসেট করা দরকার) আপনি কী ডেটা সন্ধান করছেন তার উপর নির্ভর করে আপনাকে ব্যবহার করতে ভেরিয়েবলের একটি সংক্ষিপ্ত তালিকা দেওয়া উচিত। পরিবর্তনের [[:alpha:]]ক্ষেত্রে [[:alpha:]_]সহকারী অ্যারে (বা ভেরিয়েবল) অন্তর্ভুক্ত হবে যা আন্ডারস্কোর দিয়ে শুরু হয়। পরিবর্তন association*করার জন্য scalar*বা array*বা integer*বা *export*আপনি ঐ ধরনের ফলাফল দেবে। "ভেরিয়েবল এবং অ্যারে" আরও কিছুটা কাজ নেয়।
ফ্রিয়ারটেক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.