在我的集群中(我没有根访问它),我在我的.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或cd s13:什么都不会发生。cd $s13给出:cd $s13cd $s13,那么它将扩展为cd /c13scratch/rudrab,随后的选项卡将显示/c13scratch/rudrab中的子目录。我期待cd s13(没有$符号)完成我的正常bash_completion,并向我展示子项目。
我在这里做错了什么?
我正在使用:
bash --version
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)发布于 2019-07-20 12:22:00
部分解决方案(变量名将被展开,但其值不会被替换为命令行):如果安装了bash-completion包,请重新安装cd命令的完成:
complete -v -F _cd -o nospace cd pushd如果cdable_vars是在/etc/profile.d/bash_completion.sh来源时设置的,那么包就会这样做,所以您可能想要安装一个profile.d,在它之前得到它。
如果您没有这个包,info bash给出了一个支持cdable_vars的cd的完成函数示例。
https://unix.stackexchange.com/questions/516308
复制相似问题