Как отладить команду Shell после настройки
Я потратил некоторое время на настройку своей конфигурации, как делают многие люди. В основном я символически связываю все мои точечные файлы (.zshrc, .vimrc, ...) из репозитория git, затем я изменил много вещей.
Я на Mac OS X и моя конфигурация работает очень хорошо. Однако, когда я использую те же файлы точек в Linux (Ubuntu), я получаю некоторые различия. Большинство из них незначительные различия, но это очень раздражает.
Я пользуюсь ZSH и презто
Когда я делаю cd
Я получаю это сообщение
20:17 ~ ❯ cd Projects
script: invalid option -- 'G'
Usage:
script [options] [file]
Options:
-a, --append append the output
-c, --command <command> run command rather than interactive shell
-r, --return return exit code of the child process
-f, --flush run flush after each write
--force use output file even when it is a link
-q, --quiet be quiet
-t, --timing[=<file>] output timing data to stderr (or to FILE)
-V, --version output version information and exit
-h, --help display this help and exit
Команда типа (type cd
) дай мне
cd is an alias for nocorrect cd
cd is a shell builtin
Я пишу здесь, чтобы узнать, если кто-нибудь знает способ отладки такого рода ошибки. Сообщение об ошибке не очень ясно, и я не знаю, что и где искать.
Есть идеи?
Большая часть моей конфигурации происходит от конфигурации многих других людей.
2 ответа
Как правило, вы можете начать zsh
с параметром -x
для отладки. Это отобразит любую строку кода оболочки, запущенную этой оболочкой, до ее выполнения. Это помогает определить, где в вашей конфигурации все пошло не так.
В этом случае вы получите сообщение об ошибке от script
потому что у него нет возможности 'G'
помимо списков всех доступных опций (попробуйте и сравните script -G
). Инструменты командной строки часто довольно сильно отличаются между различными производными Unix, включая количество и значение параметров командной строки. сравнить man script
между вашими платформами.
Как cd
это псевдоним для nocorrect cd
, nocorrect
кажется наиболее вероятным виновником. Чтобы проверить, запустите unalias cd
, Если проблема исчезнет, сделайте type nocorrect
и идти оттуда.
Если проблема не устранена, найдите в своей конфигурации chpwd
(это может быть определение функции или строка типа add-zsh-hook chpwd SOMETHING
).
Решение для Ubuntu: найдите скрипт, в котором находится эта строка кода script -q /dev/null ls -G .
и изменить его на script -q /dev/null -c 'ls -G .'
В моем случае это был prompt_paulmillr_setup, но это зависит от того, какое расширение ZSH вы используете.