我正在使用Ubuntu(Amazon EC2),当我输入cd
时,会发生这种情况:
$ cd
hi
hi
hi
hi
hi
hi
hi
hi
hi
$
我之前做过:成为一个函数:: () { echo hi; }
这发生在顶级shell $SHLVL=1
中,但不在任何子shell中(键入bash
然后尝试重现它不起作用)。
有谁知道为什么会这样?
答案 0 :(得分:5)
你所做的是一个非常糟糕的主意,因为:
是shell null命令。
在需要命令的构造中,它会不时有用。例如,如果您希望代码使用while
进行无限循环,则有助于:
while true ; do
:
done
取出:
并且它不再格式良好:do
需要一个命令。在以下三个单行中,只有最后一个是正确的 - 尝试它们:
while true do done
while true do ; done
while true do : ; done
如果您将:
重新定义为一个函数,那么一个好问题是:它定义得很好吗?但没关系,假设它有效。突然间,这些出现在:
中的cd
不时出现在脚本中会调用你的函数!
Amazon EC2 shell环境中的set
是什么?也许这是一个功能。输入cd
并浏览输出。我经常定义自定义/index.html
功能;它很有用。您可以执行诸如动态更新提示和窗口标题等内容。