登录时出现源/点运算符错误。可能是由于 byobu 卸载不当导致

登录时出现源/点运算符错误。可能是由于 byobu 卸载不当导致

每次我 ssh 进入我的机器或运行 时,都会收到一条错误消息sudo -i。登录时它看起来像这样:

login as: person
chands@ubuntu-server's password:
-bash: .: filename argument required
.: usage: . filename [arguments]
chands@ubuntu-server:~$

当我执行时就像这样sudo -i

chands@ubuntu-server:~$ sudo -i
[sudo] password for chands:
-bash: .: filename argument required
.: usage: . filename [arguments]
root@ubuntu-server:~#

sudo当我启动屏幕时,当我用来执行其他命令时,当我执行时sudo su,甚至当我su从 root 进入 chands时,都不会出现此错误。

我检查了 chands 和 root 的 ~/.bashrc 以及 /etc/bash.bashrc,但它们三个都是默认值,并且在.使用时都没有任何错误。

此外,在我从系统中删除并清除 byobu 后,开始出现此错误。我不知道这是否与问题有关,但这是我的参考点,在此之前一切都运行正常。

这里可能出了什么问题?有人知道吗?

答案1

因此,这个问题的根本原因确实是 byobu(实际上是缺少 byobu)。我不知道为什么,但出于某种原因,byobu 没有清理~/.profile.This was the last line of the file: 中的一行. $(which byobu-launch)。幸运的是,我能够通过执行以下操作非常轻松快速地找到此行(按照 @enzotib 和 @geirha 的建议):

首先,我运行以在调试模式 ( ) 下bash -xl进入 bash 作为登录 shell ( )。当我运行此命令时,我可以看到有问题的行是什么。一旦我知道了导致问题的原因,我就会针对 bash 启动时执行的每个文件发出警告。-l-xcat <file> | grep . $(which byobu-launch)

这些文件如下:

  1. ~/.bashrc
  2. /etc/bash.bashrc
  3. ~/.profile
  4. /etc/profile
  5. /etc/profile.d/*
  6. ~/.bash_profile
  7. + 上述文件所包含/执行的所有其他文件。

相关内容