-1 bash cd-command command syntax bash-functions
我曾经在 O'Reilly 的一本 Bash 书中读到以下内容(我的总结):
cd () {
echo "Improved CD !"
# Improvement one;
command cd
# Improvement two;
# Do cool stuff...
}
cd
Run Code Online (Sandbox Code Playgroud)
command当包含内置函数的函数与内置函数同名时,该命令很有用 - 它可以防止函数中内置函数的递归循环;
我的问题是,如果我们只调用一次函数,为什么首先会出现递归循环?
Ste*_*itt 10
如果你试试
cd () {
echo "Improved CD !"
# Improvement one;
cd
# Improvement two;
# Do cool stuff...
}
cd
Run Code Online (Sandbox Code Playgroud)
没有 command,cd会调用cd函数,会调用cd函数,会调用cd函数,依此类推:cd函数内部的语句调用cd函数,而不是cd内置的。您会看到“改进的 CD!” 在您的终端中重复令人作呕。
最终结果将因外壳而异:Zsh 将停止(“达到最大嵌套函数级别”),Bash 将崩溃。