在编写 Shell 脚本时,有时会产生我们不期望的递归。
比如说,我曾经写过一个脚本,名为 foo.sh
。
foo.sh 的内容如下:
function foo {
# TODO
}
foo
然后我在 .zshrc
里设置了别名:
alias foo="source ~/foo.sh"
现在,当我在终端运行 foo
时,就会得到如下错误:
/Users/undefined443/foo.sh:source:5: too many open files: /Users/undefined443/foo.sh
现在,每当你键入 ls
时,实际上你运行的是 ls --color=auto
。如果要临时回避这个别名,使用原始的 ls 命令(没有颜色),你可以在 ls 命令前加上 \,像这样:
\ls
这样做会忽略别名,直接运行原始 ls 命令。这在脚本编写中尤其有用,因为它允许脚本忽略用户定义的别名,确保脚本的行为是一致和预期的。
标签:脚本,Shell,递归,别名,无限,sh,ls,foo
From: https://www.cnblogs.com/Undefined443/p/18004163