登录时的源/点运算符错误。可能是byobu卸载不好造成的

cha*_*sie 5 bash byobu login bashrc

每次 ssh 进入我的盒子或运行sudo -i. 登录时看起来像这样:

login as: person
chands@ubuntu-server's password:
-bash: .: filename argument required
.: usage: . filename [arguments]
chands@ubuntu-server:~$
Run Code Online (Sandbox Code Playgroud)

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

chands@ubuntu-server:~$ sudo -i
[sudo] password for chands:
-bash: .: filename argument required
.: usage: . filename [arguments]
root@ubuntu-server:~#
Run Code Online (Sandbox Code Playgroud)

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

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

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

这里可能出了什么问题?任何人的想法?

cha*_*sie 5

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

首先,我在调试模式()下运行bash -xl以输入 bash 作为登录 shell -l-x)。当我运行它时,我可以看到违规行是什么。一旦我知道是什么导致了我cat <file> | grep . $(which byobu-launch)为 bash 启动时执行的每个文件发出的问题。

这些文件如下:

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