对 .zshrc 文件进行哪些更改可能会导致每个打开的终端输出:“@home/.zshrc:1: command not found: xyz”?

对 .zshrc 文件进行哪些更改可能会导致每个打开的终端输出:“@home/.zshrc:1: command not found: xyz”?

(据我所知,“xyz”可以是 .zshrc 第一行上的任何内容。即使是 .zshrc 第一行的空行在打开终端时也会返回相同的输出,但以空格结尾。我也尝试过pwd考虑可以在某处找到的所有终端输入实例,我认为这是最通用的命令之一,但它也找不到。)

我确信这个问题完全是由我的 .zshrc 文件中的更改引起的,因为在调整它/关闭和打开终端以测试对先前涉及 .zshrc 和 oh-my-zsh 之间别名冲突的问题的修复后,问题发生了几个小时(也就是说,我不知道 oh-my-zsh 添加了一行来获取某些文件,该行以某种方式优先于 .zshrc 上的自定义别名,请参阅链接:为什么“采购”我的 .zshrc 文件不会更改我的别名?)。

潜在相关/一般有用的信息:

- gnome 终端(首选且几乎专门使用)和 urxvt(备份)均出现问题。 -除了这个持续的第一次打嗝之外,其他一切都工作得很好。甚至我所有的别名和 oh-my-zsh 方案都可以正常运行。

——fortune -o这是我开始尝试寻找解决方案之前的第一句话。 (它也回来了command not found: fortune

--我可能搞砸的一个重要指标可能以某种方式涉及 oh-my-zsh 因为我最后一次尝试解决上面链接中提到的问题是添加

source $home/.zshrc

直接位于包含以下内容的行下方source $ZSH/oh-my-zsh.sh

这背后的想法是我认为sourceing 我的自定义 .zshrc 文件会导致该文件中的别名优先于由 oh-my-zsh 文件确定的任何别名,我对此不太了解/理解/如何它一开始就到了那里。保存文件后,关闭终端并打开一个新终端来测试别名更改,出现了一个非常令人困惑的错误。终端正常打开,配色方案和其他一切在美学上都是准确的,但它正在以相当快的速度无限循环地循环随机命运。没有常见的按键绑定可以阻止它(Ctrl+C、Ctrl+D、Esc、Enter、“Q”)。所以我不得不用 gnome 键绑定来关闭它。 urxvt 上的错误以完全相同的方式持续存在。删除这条source $home/.zshrc线解决了我的循环财富问题,但导致了我当前的难题

答案1

整个问题取决于两个并发症。第一个是我愚蠢的错误,我认为我可以拥有一个剧本source本身。也许这在其他上下文中是可能的,但在我的具体情况下,它导致我的 .zshrc 调用自身的无限循环。第二个复杂问题是由于解决第一个问题的失败尝试而产生的:使用 libreoffice 编辑系统配置文件。我的无限脚本调用使所有终端都无法使用,并且没有其他可用的 GUI 文本编辑器,我认为 libreoffice 适合单行更改编辑。保存任何文本文件时,libreoffice 似乎会在文本文件前添加字节顺序标记(https://en.wikipedia.org/wiki/Byte_order_mark)。我对它们了解不多,但我可以肯定地说,如果没有 vim 命令,默认的 vim 编辑器不会以任何明显的方式显示它们。

不过,您可以在 vim 中删除上述 BOM。 如果当前文件确实有 BOM,:set bomb?则会输出。bomb相反,nobomb如果不存在则返回。

足够直观的是,你可以让 vim 删除它:set nobomb

不过,请记住之后保存文件。否则,不会发生任何变化。

相关内容