![Bash 완성 함수에 사용할 수 있는 위치 인수를 아무도 사용하지 않는 이유는 무엇입니까? [폐쇄]](https://linux55.com/image/113625/Bash%20%EC%99%84%EC%84%B1%20%ED%95%A8%EC%88%98%EC%97%90%20%EC%82%AC%EC%9A%A9%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%8A%94%20%EC%9C%84%EC%B9%98%20%EC%9D%B8%EC%88%98%EB%A5%BC%20%EC%95%84%EB%AC%B4%EB%8F%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
Bash 매뉴얼 페이지에는 쉘 기능을 완료하는 데 사용할 수 있는 인수가 설명되어 있습니다.
쉘 함수가 호출되면 COMP_WORDS 및 COMP_CWORD 변수도 설정됩니다.
현재 단어와 이전 단어를 식별하기 위해 이러한 매개변수를 사용하는 것이 일반적인 관용구인 것 같습니다.
cur=${COMP_WORDS[COMP_CWORD]}
prev=${COMP_WORDS[COMP_CWORD-1]}
그러나 그 문서는 계속해서 이렇게 말합니다.
함수나 명령이 호출될 때 첫 번째 인수는 인수가 완성되는 명령의 이름이고, 두 번째 인수는 완성되는 단어이며, 세 번째 인수는 현재 명령줄에서 완성되는 단어 앞의 단어입니다.
따라서 위의 코드는 다음과 같이 대체될 수 있습니다.
cur=$2
prev=$3
나는 "야생에서" 이러한 사용법의 예를 본 적이 없습니다. 왜 그런 겁니까? 사람들은 이러한 매개변수가 이미 사용 가능하다는 사실을 인식하지 못하는 걸까요, 아니면 이 매개변수에 의존하지 말아야 할 설득력 있는 이유가 있는 걸까요?
bash 완성 프로젝트에서 보다 세분화된 완성 메커니즘이 제공된다는 것을 깨달았습니다(v1, v2), 따라서 이전 예제 중 어느 것도 고급 사용 사례에 이상적이지는 않지만 간단한 사용 사례의 경우 위치 매개변수를 즉시 사용할 수 있는데 왜 누구도 이를 사용하지 않습니까?