zsh 함수 정의를 표시하는 방법 (예 : bash "type myfunc")?
zsh에서 함수의 정의를 어떻게 표시합니까? type foo
정의를 제공하지 않습니다.
bash에서 :
bash$ function foo() { echo hello; }
bash$ foo
hello
bash$ type foo
foo is a function
foo ()
{
echo hello
}
zsh에서 :
zsh$ function foo() { echo hello; }
zsh$ foo
hello
zsh$ type foo
foo is a shell function
zsh 관용구는 whence
이고 -f
플래그는 함수 정의를 인쇄합니다.
zsh$ whence -f foo
foo () {
echo hello
}
zsh$
zsh에서는와 type
동등하게 정의 되므로을 whence -v
계속 사용할 수 type
있지만 -f
인수 를 사용해야합니다 .
zsh$ type -f foo
foo () {
echo hello
}
zsh$
그리고 마지막으로, zsh which
에서는 whence -c
-출력 결과를 csh와 같은 형식으로 인쇄 하므로 which foo
동일한 결과가 생성됩니다.
man zshbuiltins
이 모든 것을 위해.
나는 항상 which
이것을 위해 사용 했습니다.
tl; dr
declare -f foo # works in zsh and bash
typeset -f foo # works in zsh, bash, and ksh
type -f
/ whence -f
/which
있습니다 이 경우 최적 때문에, 그들의 목적은을 사용하여 명령 형태로보고하는 가장 높은 우선 순위 정의 할 일이 그 이름으로 (당신은 또한 지정하지 않는 -a
경우에, 모든 구체적으로보고 반대 - 명령 형태가보고됩니다) 피연산자에 함수로 .
이 -f
옵션은 변경되지 않습니다 . 조회에 셸 기능 만 포함됩니다 .
별칭와 쉘 키워드는 그래서 손의 경우, 별명이 경우, 쉘 기능보다 더 높은 우선 순위를 가지고 있습니다 foo
했다 또한 정의, type -f foo
보고서 것이다 별명 정의를.
주 zsh
(처럼 기본적으로 스크립트 별칭을 확장 않습니다 ksh
,하지만 bash
), 당신은 첫째로 별칭 확장을 설정하는 경우에도, type -f
/ whence -f
/ which
아직 첫 별칭을보고합니다.
찾고있는 내용이 확실하지 않은 경우 다음을 입력 할 수 있습니다.
functions
정의 된 모든 기능을 보여줍니다.
때때로 많은 것이 있으므로 호출기 프로그램으로 파이프 할 수 있습니다.
functions | less
함수를 정의 해제하려면
unfunction functionname
'developer tip' 카테고리의 다른 글
std :: function <>과 표준 함수 포인터의 차이점은 무엇입니까? (0) | 2020.12.30 |
---|---|
Mac에서 Bash를 사용하여 기본 브라우저로 .html 파일 열기 (0) | 2020.12.30 |
Laravel 4의 모든 캐시를 플러시합니다. (0) | 2020.12.30 |
Swift : 글로벌 상수 명명 규칙? (0) | 2020.12.30 |
자바 스크립트에 Array.prototype.flatMap이없는 이유는 무엇입니까? (0) | 2020.12.29 |