我正在使用ubuntu(amazon ec2),当我输入cd
时,会发生以下情况:
$ cd
hi
hi
hi
hi
hi
hi
hi
hi
hi
$
我以前做过:成为一个函数:
: () { echo hi; }
这种情况发生在顶级shell
$SHLVL=1
中,但不发生在任何子shell中(键入bash
然后尝试重新生成它不起作用)。有人知道为什么会这样吗?
最佳答案
您所做的是一个非常糟糕的主意,因为:
是shell null命令。
在需要命令的构造中,它有时很有用。例如,如果要使用while
编写无限循环,它将有助于:
while true ; do
:
done
去掉
:
后,它就不再是格式良好的:do
需要一个命令。在下面的三行代码中,只有最后一行是正确的,请尝试它们:while true do done
while true do ; done
while true do : ; done
如果将
:
重新定义为一个函数,那么一个好问题是:它定义得好吗?但别介意,假设它有效。突然,这些不时出现在脚本中的:
事件将调用您的函数!在amazon ec2 shell环境中
cd
是什么?也许这是一个函数。键入set
并浏览输出。我经常定义一个自定义的cd
函数;这样做很有用。您可以执行动态更新提示和窗口标题等操作。关于linux - 为什么cd会调用函数':'?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37759466/