Когда я открываю новую оболочку в tmux я получаю сообщение об ошибке. Это сообщение об ошибке не появляется, когда я запускаю новую оболочку в 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 ответ1

1

Это может иметь несколько причин:

У вас может быть псевдоним для tmux который устанавливает специальные параметры командной строки

или же

tmux на некоторых машинах не запускает оболочку входа. Вы можете проверить, почему ~/.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 чтобы определить, является ли это оболочкой входа в систему или нет: если процесс завершается, это была оболочка входа в систему. В противном случае он скажет вам, что это не так. Однако в настоящее время я не уверен, как поведет себя tmux , если это не оболочка входа в систему.

Кроме того, если вы когда-либо играли с системными файлами, вы также можете проверить

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

Загружается также ~/.inputrc , но он не выполняется как скрипт.

Посмотрите все это с man bash и man tmux в разделе FILES .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .