저는 기본 .sh 파일에 대한 일부 명령을 완료하기 위해 Bash 명령을 사용하여 이 작업을 수행하려고 합니다. 하지만 이 Bash 코드를 사용하는 데 몇 가지 문제가 있습니다.
function _test()
{
local cur
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=($( compgen -W '--activate --help --new' -- $cur ) )
}
complete -F _test test
이제 터미널에 넣고 호출하면 코드가 잘 작동하는데, .sh 스크립트에 넣고 실행하면 아무 일도 일어나지 않습니다. 나는 또한 이 함수를 bashrc 파일에 복사하여 붙여넣어 보았습니다(이 역시 작동하지 않았습니다). Bash 스크립팅을 처음 접했기 때문에 무엇이 잘못되었는지 모르겠습니다. 모든 도움에 감사드립니다!
답변1
내 코드에 코드를 넣으면 .bashrc
작동합니다.
.bashrc
적용하려면 새 터미널을 실행하거나 . ~/.bashrc
열어서 source ~/.bashrc
실행 해야 합니다.
bash XXX.sh
이 완료 코드가 포함된 .sh 스크립트를 사용하거나 실행하면 작동하지 않습니다 ./XXX.sh
. 사용 . ./XXX.sh
하거나 source ./XXX.sh
대체하십시오.