쉘 키워드, 내장 함수, 사용자 정의 함수를 찾는 명령은 무엇입니까?

쉘 키워드, 내장 함수, 사용자 정의 함수를 찾는 명령은 무엇입니까?

친구와 쉘에서 명령을 구문 분석하는 방법에 대해 논의하고 있었는데 bash가 다음 순서로 명령을 검색한다고 말했습니다.

  1. 별칭 목록
  2. 쉘 키워드 목록
  3. 사용자 정의 함수 목록
  4. 쉘 내장 함수 목록
  5. PATH 변수에 지정된 디렉터리 목록(왼쪽에서 오른쪽으로).

나는 명령을 실행하여 별칭을 찾을 수 있다는 것을 알고 있습니다 alias. PATH 변수의 내용은 echo $PATH명령을 사용하여 찾을 수 있습니다 .

어떤 명령을 사용해야 하는지 알려주실 수 있나요?

  1. 모든 쉘 키워드 나열
  2. 모든 사용자 정의 함수 나열
  3. 쉘 내장 함수 목록

답변1

compgen다음 에서도 사용할 수 있습니다 bash.

  • compgen -k키워드 나열
  • compgen -b또는 enable내장 함수 나열
  • compgen -A function또는 declare -F목록 기능
  • compgen -a또는 alias별칭 나열
  • compgen -c명령 나열
  • compgen -v변수 나열
  • compgen -e또는 export내보낸 변수 나열

답변2

큰 타격을 받은 경우:

  1. man bash | grep -10 RESERVED예약어 나열:

    ! Case coproc do done elif else esac fi for function if in select then Until while { } time [[ ]]
  2. declare -Ftypeset -F내용을 표시하지 않고 함수 이름을 표시합니다 .

  3. enable내장 쉘 나열주문하다(내 생각엔 이건 아닌 것 같아기능이런 식으로). 이것도 이렇다man builtins

답변3

zsh 사용:

PATH= type -m '*'

알려줄게 3.

Bash에서 키워드를 나열하려면 다음을 수행할 수 있습니다.

complete -A keyword :

그런 다음 입력: <Tab><Tab>

내장 함수의 경우 위와 keyword같이 바꾸고 builtin, 함수의 경우 추측해 보겠습니다.

답변4

배쉬에서

  • 키워드(예약어):

    compgen -A keyword       # or:  compgen -k
    
  • 함수(실행 시 정의됨):

    compgen -A function      # Only names.
    declare -F               # Only names but prefixed with `declare -f`.
    

    명령문 -f # 함수 정의를 완료합니다.

  • 내장 기능

    compgen -A builtin       # Only names.
    enable                   # Names prefixed with `enable `
    man builtins             # Only if the correct man package is installed.
    

compgen별칭, 명령, 변수, 내보내기 등 의 다른 키워드도 있습니다 .

compgen -A가능한 옵션 목록은 다음을 통해 찾을 수 있습니다.마치다:

 compgen -A                  # and press Tab (Maybe twice vary by configuration).

관련 정보