저는 bash를 사용하고 있는데 중첩된 명령에 자동 완성을 구현하고 싶습니다. 예를 들어 다음을 입력합니다.
kill $(cat tmp/p|
다음에 <tab>
생성됩니다
kill $(cat tmp/pids/
s<tab>)
주소를 입력하고 싶어요
kill $(cat tmp/pids/server.pid)
안타깝게도 이 특별한 경우에는 내 bash 자동 완성이 작동하지 않습니다.
이 문제를 해결할 방법이 있나요?
이것은 내 bash 버전입니다.
GNU bash, version 4.4.23(1)-release (x86_64-apple-darwin17.5.0)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
답변1
의 전체 설정을 사용해야 합니다 bash-completion
. 명령 대체의 탭 완성이 작동하지 않습니다. 그러나 이러한 기능이 없어도 기본 설정으로는 제대로 작동합니다. 소스를 주석 처리하고 /usr/local/etc/bash_completion
(버전 문자열이 주어지면 기본 홈브류로 가정) 새 셸을 시작한 후 다시 시도하세요.
답변2
파일에서 PID를 읽고 프로세스를 종료하려면 다음 명령을 사용하십시오.
pkill -F /path/to/file