我重新定义cd
为.bashrc
:
function cd() {
builtin cd $*
pwd
}
这招管用了一段时间,直到我输错了
cd *2
作为
cd *(2
当我这样做时,bash 提示我,我输入“d'oh”,当我输入时)
,它陷入了无限循环。
好吧,我应该在函数定义中使用"$@"
而不是$*
(尽管我仍然不确定我是否可以解释原因)。但是为什么这会导致 bash 超越这个尘世?
答案1
除非你当前目录中有一个名为的目录$'2\n'
,否则我无法理解它。
该语法*(pattern)
是一种“扩展通配符”模式(參考) 返回零个或多个给定模式。给定您的模式(a2
和换行符),我期望它返回 null。然后调用不带参数的函数应该只需 cd 到您的主目录即可。