从 tmux 启动 shell 时出现 bash 错误

从 tmux 启动 shell 时出现 bash 错误

当我在 中打开新 shell 时,tmux出现错误消息。当我在 中启动新 shell 时,不会显示此错误消息GNOME terminal

tmux我需要检查启动时可能正在运行什么?

这不是来自~/.bashrc~/.bash_aliases(我猜显然是因为除了 之外它不会发生tmux。但我还是检查了一下。)


错误如下:

cut: the delimiter must be a single character
Try `cut --help' for more information.
complete: usage: complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]
alias ls='ls --color=auto'
cut: the delimiter must be a single character
Try `cut --help' for more information.
complete: usage: complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]

答案1

这可能有几个原因:

tmux你可能有一个设置特殊命令行选项的别名

或者

tmux在某些机器上不会启动登录 shell。您可以检查为什么打开终端时没有获取 ~/.bash_profile 的源代码?以了解更多。

或者

您的某个 bash 文件中可能存在如下代码块:

if [[ -n "$TMUX" ]]; then
    does something that causes the error
fi

只有在 tmux 下运行时才会执行。

或者

.tmux.conf可能有一个错误,或者它包含以下形式的语句

source-file "/path/to/some.conf"
run-script "/path/to/script"

其中一个给定文件包含错误。您可以尝试独立运行脚本,看看是否会出现相同的错误。

要测试加载了什么,您可以添加如下行

echo ".bash_profile"

到您的以及或可能加载的.bash_profile任何其他文件的对应行(、、)。然后查看在正常终端会话中加载了哪些文件以及在启动时加载了哪些文件。bashsh.bashrc.profile.bash_logintmux

您还可以尝试键入logout以查看它是否是登录 shell:如果进程结束,则它就是登录 shell。否则它会告诉您它不是。但是我目前不确定tmux如果它不是登录 shell 会如何表现。

此外,如果你曾经使用过系统文件,你可能还需要检查

  • /etc/profile
  • /usr/local/etc/tmux.conf

也会加载~/.inputrc,但它并不像脚本那样执行。

man bash通过和man tmux部分查找全部内容FILES

相关内容