एलश में उपनामों, कार्यों और चर की सूची


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_parn.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 ) केवल उन मापदंडों के लिए जो चर हैं।
— 15:22 पर स्टीफन चेज़लस

for k in ${(koM)parameters:#[[:alpha:]][[:alnum:]_]#}; do; [[ ${(M)parameters[$k]:#association*} ]] || continue; print -- "$k"; done( extendedglobसेट करने की आवश्यकता है) आपको उस डेटा के आधार पर उपयोग करने के लिए चर की एक छोटी सूची देनी चाहिए जो आप खोज रहे हैं। को बदलने के [[:alpha:]]लिए [[:alpha:]_]साहचर्य सरणियों (या चर) शामिल होंगे जो एक अंडरस्कोर के साथ शुरू होते हैं। बदलने association*के लिए scalar*या array*या integer*या *export*आप उन प्रकार के परिणाम प्राप्त होंगे। "चर और सरणियाँ" थोड़ा और काम लेते हैं।
— फ्रीर्टेक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.