특정 폴더 내의 폴더 이름을 자동 완성하는 bash 스크립트를 작성하려고 합니다. 이것이 내가 지금까지 가지고 있는 것입니다:
function go {
cd "/path/to/folder/$@"
}
목표는 자동 완성을 갖는 것이므로 go pro
탭을 입력하고 누르면 파일이나 폴더가 자동 완성됩니다./path/to/folder/project/
답변1
다음을 사용하여 complete
원하는 것을 얻을 수 있습니다 .
다음에 추가하세요 .bashrc
:
if [[ -f /path/to/your/script ]]; then
. /path/to/your/script
fi
그런 다음 홈 디렉터리에서 실행합니다.
. .bashrc
스크립트를 작성 /path/to/your/script
하고 실행 가능하게 만드십시오 chmod +x /path/to/your/script
. 다음 내용을 넣으세요.
#!/bin/bash
# check that the function doesn't already exist
[[ ! -z "$(compgen -c | grep "^go$")" ]] \
&& echo "The command 'go' already exists." \
&& exit
go() {
cd /your/dir/"$1"
}
cd_my_dir() {
cd /your/dir
}
complete -d -F cd_my_dir go
유형 go
그리고Tab두 번 누르기
go <Tab> <Tab>
가능한 디렉터리 목록이 나타납니다:
foo/
bar/
이름의 시작 부분을 입력하기 시작하면 자동으로 완성됩니다.
go f <Tab> → go foo/