Создайте функцию в .profile для go, чтобы указать c папку с zsh - PullRequest
0 голосов
/ 02 апреля 2020

До перехода с bash на zsh в моем файле .profile была функция к go непосредственно в папке клиента. Это выглядит так:

function client {
  cd ~/Client/$1
}
alias cl="client"

Это больше не работает теперь, когда я перешел на использование zsh, и я понятия не имею, почему. Он не распознает мой псевдоним. Я делаю что-то не так или пропустил что-то лишнее?

Интересно, что другие функции в моем .profile все еще работают. Только не этот.

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

Я не вижу, как определяются только некоторые из ваших функций в .profile, но не все из них. Хотя 0stone0 правильно говорит, что Zsh обычно не читает .profile (хотя его можно обмануть), это не объясняет поведение, которое вы видите. Возможно, вы пропустили какое-то сообщение об ошибке?

Я предлагаю вам проследить полный zsh вызов с

zsh -l -i -x

. -l заставляет zsh полагать, что это оболочка входа в систему, -i гарантирует что он запускается как интерактивная оболочка (хотя, если вы запускаете команду из командной строки терминала, это должно происходить автоматически), и -x отслеживает все команды, которые он выполняет при запуске. Если ваше утверждение верно, что оно загружает .profile, но не создает все функции, вы должны увидеть из этого вывода, в какой момент оно завершается с ошибкой.

1 голос
/ 02 апреля 2020

работает ~/.zprofile, а не ~/.profile.


Чтобы добиться того же в zsh, вам не понадобится alias, Вы можете вызвать функцию по ее имени.

Вы можете вставить функцию в ~/.zshrc (или ~/.zprofile) следующим образом:

function client {
    cd /tmp/$1
}

И использовать ее, как и ожидалось:

enter image description here

...