我在 .bashrc 中定义了许多全局变量。
export mylogdir=/var/mylogs
export myappdir=/opt/myapps
我可以 cd $mylogdir。但是,如果我 ls $mylogdir,则会在 $mylogdir 的制表符补全中添加一个空格:
ls $myl[TAB] -> ls $mylogdir<space>
停止添加空间的任何选项或过程。空间是一个问题,因为我有时想要
cat $mylogdir/<space>logfile1.log
变量之间的切换总是<space>
附加到末尾。
bash 版本=4.2.46
答案1
发现类似问题这里。总而言之:
末尾的空格是使用 compopt 设置的首选项。您可以通过以下方式查看当前行为:
compopt <program>
您可以通过运行以下命令来更改行为:
compopt +/-o <option> <program>
因此,要从 ls 变量自动完成中删除空格,您可以运行:
compopt -o nospace ls
如果您希望它永久存在,您可以将其添加到~/.bashrc