字母“y”不会在 macOS 终端中打印

字母“y”不会在 macOS 终端中打印

我正在学习 BASH 脚本编写,并使用 Homebrew 将 BASH 升级到版本 5.1。当我尝试输入“y”时,我只听到一声声音。当我运行其中包含字母“y”的脚本时,我收到消息“y:无键序列终止符”。我的研究表明它与 .inputrc 文件有关。该文件仅包含 4 行:

set completion-ignore-case on
set show-all-if-ambiguous on
TAB: menu-complete
y

我尝试使用 nano 删除最后一行的“y”,但无法将文件写回目录。我是否正确地认为最后一个“y”是问题所在并且应该删除?如果是这样,怎么办?如果没有,我还能尝试什么?

任何帮助,将不胜感激。谢谢!

PS:我使用zsh shell时没有这个问题。

当我尝试将 nano 保存回 .inputrc 时,收到消息“[无法打开文件进行写入:权限被拒绝]”。

我不确定第二条评论是什么意思 - sed --in-place....?

解决了我自己的问题!我使用“sudo”获得写入 .inputrc 的权限。我从文件中删除了字母“y”,然后我可以在 BASH 命令行中使用字母“y”。

答案1

该字母y不应在文件中独占一行.inputrc,因此您必须将其删除。

如果这是不可能的,则可能是由于文件的所有权错误。如果您意外地以 root(或其他)用户身份创建该文件,则该文件可能具有错误的所有权。

假设您当前以该用户身份登录并且您有权访问sudo临时升级权限的工具,将所有权更改回正确用户的正确方法是使用

sudo chown "$(id -u):$(id -g)" ~/.inputrc

id命令此处用于检索用户和组 ID,然后chown用于设置文件的用户和组所有权。

然后,您可以在任何编辑器中打开该文件并进行更改。您还可以直接使用 macOS 系统的命令行删除文件的第 4 行

/usr/bin/sed -i '' 4d ~/.inputrc

相关内容