완전한 명령의 사용법은 무엇입니까?


17

complete내 gnome-terminal 에서 명령을 실행하는 동안 몇 가지 명령이 표시됩니다. 그리고 complete명령 의 사용은 무엇 입니까?

$ complete
complete -F _minimal 
complete -F _filedir_xspec oodraw
complete -F _filedir_xspec elinks
complete -F _filedir_xspec freeamp
complete -F _longopt split
complete -F _longopt sed
complete -F _longopt ld
complete -F _longopt grep
complete -F _service /etc/init.d/vboxweb-service
complete -F _service /etc/init.d/vboxballoonctrl-service
complete -F _service /etc/init.d/rc
complete -F _service /etc/init.d/nmbd
complete -F _service /etc/init.d/halt
complete -j -P '"%' -S '"' jobs
complete -d pushd

목록이 길어 지므로 일부를 게시했습니다.


1
'man complete'명령을 시도했지만 아무것도 표시되지 않습니다.
Avinash Raj

2
시도help complete
Sylvain Pineau

답변:


16

completebash 내장 함수입니다. 따라서 시스템에는 바이너리가 없습니다. 를 누를 때 명령이 완료되는 방법을 처리합니다 tab.

예 : 다음을 입력하면 :

user@host:~$ pidof <tab><tab>

...이 명령에 가능한 모든 값이있는 목록이 나타납니다. 이 경우 실행중인 모든 프로세스를 의미합니다. complete함수 의 출력을보십시오 :

user@host:~$ complete | grep pidof
complete -F _pgrep pidof

이는 _pgrep명령을 탭할 때 기능 (-F)이 실행 됨을 의미합니다 pidof. 이 함수의 정의는에 /etc/bash_completion.d/procps있습니다.

다른 예 : 다음을 입력하면 :

user@host:~$ cd /usr/<tab><tab>
bin/     games/   include/ lib/     lib32/   local/   sbin/    share/   src/

... cd아래 에 가능한 폴더 목록이 표시 됩니다 /usr/. 어떤 기능이 실행됩니까? greping complete(위와 같이) 함수하면이 funtction의 우리에게 알려줍니다 _cd에서 /etc/bash_completion.

스스로해라 : 당신은 프로그램 / 스크립트를 가지고 있고 /bin/myprog다음과 같이 실행하면 그것을 원한다.

user@host:~$ myprog /home/user/<tab><tab>

... 파일이 아닌 폴더 만 나열해야합니다. 따라서 다음 명령으로 bash 완성을 확장하십시오.

user@host:~$ complete -F _cd myprog

그게 다야. 또한 특정 파일이나 숫자 또는 정적 값 목록 만 완성하는 등 사용자 정의 기능을 완성하는 자체 함수를 작성할 수도 있습니다.


그래서 git의 명령 행 완성이 대부분의 프로그램보다 훨씬 똑똑해 보입니다.
AShelly

8

complete사용자가 TAB터미널 에서 키를 누를 때 자동 완성 동작을 수행하는 데 사용되는 bash 명령 입니다.

호출 complete하면 명령 또는 서비스 옵션의 자동 완성을 위해 등록 된 모든 기능이 나열됩니다.

bash 매뉴얼 페이지에서 :

complete: complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat]
          [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix]
          [-S suffix] [name ...]
    Specify how arguments are to be completed by Readline.

    For each NAME, specify how arguments are to be completed.  If no options
    are supplied, existing completion specifications are printed in a way that
    allows them to be reused as input.

    Options:
      -p    print existing completion specifications in a reusable format
      -r    remove a completion specification for each NAME, or, if no
        NAMEs are supplied, all completion specifications
      -D    apply the completions and actions as the default for commands
        without any specific completion defined
      -E    apply the completions and actions to "empty" commands --
        completion attempted on a blank line

    When completion is attempted, the actions are applied in the order the
    uppercase-letter options are listed above.  The -D option takes
    precedence over -E.

    Exit Status:
    Returns success unless an invalid option is supplied or an error occurs.

/usr/share/bash-completion/bash_completionbash와 함께 제공되는 기본 완료를 확인 하십시오.

이 명령에 대한 전체 자습서를 보려면 http://www.linuxjournal.com/content/more-using-bash-complete-command 를 방문 하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.