创建别名的 Bash 函数被无休止地调用

创建别名的 Bash 函数被无休止地调用

我运行了以下 Bash 函数,将带有扩展变量的字符串添加到我的末尾bashrc

alias() {
    echo "alias $repo=\"$HOME\"/$repo/$repo.sh" >> "$HOME"/.bashrc
    source "$HOME"/.bashrc 2>/dev/null
}
alias

为了运行它,我复制了它,粘贴到 Bash 终端(它出现过一次)并通过点击执行Enter

我得到的输出~/.bashrc大约是上述字符串的行:

别名 $repo=\"$HOME\"/$repo/$repo.sh

最后一个命令 ( source /home/user/.bashrc) 一直在无休止地执行(我假设是由于无休止地调用该函数),所以我立即使用^C组合键中止。


在使用 Nano 和剪切操作删除字符串的所有数千个重复之后mark-set,我想问为什么会发生这种情况(并且不断发生)?

答案1

您定义了一个名为 的函数,向该调用alias添加了一行,然后将源代码输入到您的 shell(其中已经定义了该函数)。您获取的调用该函数,该函数添加另一行并再次获取脚本,再次调用该函数.bashrcalias ....bashrcalias每次已经运行一次,导致指数级增长。

更改您的函数的名称。

相关内容