내 클러스터(루트 액세스 권한이 없음)에서 다음을 정의했습니다 .bashrc
.
shopt -s cdable_vars
shopt -s direxpand
export s13=/c13scratch/rudrab
나는 다음의 소유자입니다 /c13scratch/rudrab
:
ll /c13scratch/ |\grep rudrab
drwxr-xr-x 15 rudrab users 4.0K Apr 29 23:58 rudrab
이제 저는 다음과 같은 상황에 직면해 있습니다.
cd s1<tab>
또는cd s13<tab>
: 아무 일도 일어나지 않습니다.cd $s13<tab>
다음을 제공합니다:cd $s13<space>
<backspace>
2 이후에 in을 사용하면cd $s13<space>
확장되고cd /c13scratch/rudrab
후속 탭에는 그 안의 하위 디렉터리가 표시됩니다./c13scratch/rudrab
cd s13<tab>
나는 ( $
기호 없이) 정상적인 작업을 완료 bash_completion
하고 하위 디렉토리를 보여주기를 기대합니다 .
내가 여기서 뭘 잘못하고 있는 걸까?
나는 다음을 사용하고 있습니다 :
bash --version
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
답변1
부분적 해결 방법(변수 이름은 확장되지만 해당 값은 명령줄에서 바뀌지 않음): bash-completion
패키지가 설치된 경우 명령 완료 다시 설치 cd
:
complete -v -F _cd -o nospace cd pushd
cdable_vars
패키지를 가져올 때 설정된 경우 이 작업을 수행 /etc/profile.d/bash_completion.sh
하므로 그 전에 가져올 profile.d를 설치해야 할 수도 있습니다.
패키지가 없는 경우 info bash
지원되는 완성 기능의 예를 제공해 주세요.cd
cdable_vars