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)매쉬업 다음과 tab활성화 완료를 가정).


1
어쩌면 ${(kM)parameters:#[[:alpha:]_][[:alnum:]_]#}(에 extendedglob대한) 유일한 변수 매개 변수.
Stéphane Chazelas 2016 년

for k in ${(koM)parameters:#[[:alpha:]][[:alnum:]_]#}; do; [[ ${(M)parameters[$k]:#association*} ]] || continue; print -- "$k"; done( extendedglob설정해야 함) 원하는 데이터에 따라 사용할 간단한 변수 목록을 제공해야합니다. 변경 [[:alpha:]]하려면 [[:alpha:]_]밑줄로 시작 연관 배열 (또는 변수)를 포함한다. 변경 association*scalar*또는 array*또는 integer*또는 *export*해당 유형의 결과를 줄 것이다. "변수 및 배열"에는 약간의 작업이 필요합니다.
Friartek
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.