내 bash 탭 완성이 이상한 동작을 하는 데비안 시스템을 가지고 있습니다. 이와 같은 명령을 작성 scp file.tgz remoteServer:/home/remoteU
하고 탭을 클릭 하면 scp file.tgz /home/remoteUser
호스트 참조 종료가 완료됩니다. ssh
이와 같은 원격 디렉터리를 참조하는 명령 관련 명령을 사용하면 이런 일이 발생합니다.
bash 완료 구성을 확인한 결과 테스트 전에 콜론 제거와 관련된 내용을 찾을 수 없습니다. 콜론이 동작을 일으키는 것으로 의심되기 때문입니다. 또한 흥미로운 점은 올바른 디렉터리를 얻기 위해 먼저 원격 시스템을 쿼리한다는 것입니다.
어떤 제안이 있으십니까?
답변1
.bashrc
에서 다운로드하려면 파일 에 이 줄을 추가하세요 COMP_WORDBREAKS
.
COMP_WORDBREAKS=${COMP_WORDBREAKS//:}
다음은 소스 코드에서 이 함수를 기반으로 한 가지치기입니다.
__ltrim_colon_completions()
{
if [[ "$1" == *:* && "$COMP_WORDBREAKS" == *:* ]]; then
# Remove colon-word prefix from COMPREPLY items
local colon_word=${1%"${1##*:}"}
local i=${#COMPREPLY[*]}
while [[ $((--i)) -ge 0 ]]; do
COMPREPLY[$i]=${COMPREPLY[$i]#"$colon_word"}
done
fi
}