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


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.