为了从另一个目录访问一个目录中的文件,我经常为该目录设置一个变量。例如(所以你可以自己尝试一下),
导出dir1=/usr/local/bin
然后键入,然后ls $dir1/
键入tab
. 我希望 shell 显示 /usr/local/bin 下的文件,但是通过tab
,字符$
被转义\
为变为\$dir1
,并且 shell 不再理解它,$dir1
并且不会将其扩展为 /usr/local/bin 不是显示那里的文件。这很烦人(我以前做过这些事情没有问题,但它是从 ubuntu-22.04 开始发生的吗?)。有什么方法可以在文件名自动完成期间停止这种自动转义吗?
ps - 我看到了https://lists.gnu.org/archive/html/bug-bash/2011-02/msg00280.html但没有找到答案,只是非必要的长篇讨论,没有切中要害。
此行为由 shell 选项控制
direxpand
:因此,请检查您的 shell 中是否设置了该选项 (
shopt direxpand
),如果没有,请使用 进行设置shopt -s direxpand
。看