当我在 中打开新 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
任何其他文件的对应行(、、)。然后查看在正常终端会话中加载了哪些文件以及在启动时加载了哪些文件。bash
sh
.bashrc
.profile
.bash_login
tmux
您还可以尝试键入logout
以查看它是否是登录 shell:如果进程结束,则它就是登录 shell。否则它会告诉您它不是。但是我目前不确定tmux
如果它不是登录 shell 会如何表现。
此外,如果你曾经使用过系统文件,你可能还需要检查
/etc/profile
/usr/local/etc/tmux.conf
也会加载~/.inputrc
,但它并不像脚本那样执行。
man bash
通过和man tmux
部分查找全部内容FILES
。