问题描述
依照Arch Linux Wiki中,此页面介绍的方法,通过保持默认 shell 为 Bash 不变,然后添加exec fish
到合适的 Bash 配置文件中,比如.bashrc
,可以使得 Bash 会正常执行/etc/profile
和/etc/profile.d
中的所有配置文件。然而,注意到,添加代码
if [[ $(ps --no-header --pid=$PPID --format=cmd) != "fish" ]]
then
exec fish
fi
到/root/.bashrc
中以后(root账户的登录shell为bash),pacman安装部分软件包(例如bassh
)的时候可能有如下报错:
error: Unable to read input file: 是一个目录
错误:命令未能被正确执行
亦即
error: Unable to read input file: Is a directory
error: command failed to execute correctly
并且我们注意到,只有通过sudo pacman -S bash
这样的指令进行软件包安装的时候会报错,而直接登录到root账户中再pacman -S bash
并不会报错。
问题解决
注释或删除/root/.bashrc
中有关于exec fish
的代码,仅在你目前的登录账户中添加对应代码不会影响/etc/profile
和/etc/profile.d
的正常执行。文章来源:https://www.toymoban.com/news/detail-784910.html
问题原因
sudo
执行指令的时候不会执行/root/.bashrc
,而登录到root账户的时候会。
问题的具体原因尚未追溯。但可以判断/root/.bashrc
是直接原因。文章来源地址https://www.toymoban.com/news/detail-784910.html
到了这里,关于fish和pacman:“error: Unable to read input file: 是一个目录”报错的处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!