#zsh #oh-my-zsh
#zsh #oh-my-zsh
Вопрос:
В настоящее время я создаю сценарий инициализации в моем .zshrc
. К сожалению, это вносит некоторые изменения в мою среду, и $PATH
я не хочу, если я не нахожусь в некоторых определенных каталогах.
Конечно, я мог бы сравнить выходные pwd
данные с текущим каталогом, но я хотел бы указать, нахожусь ли я в определенном каталоге или в одном из его подкаталогов на любом уровне.
И, вероятно, существует совершенно другое решение моей проблемы?
Комментарии:
1. Итак, вы хотите, чтобы эти изменения присутствовали только в некоторых окнах терминала, а не в других? Потому что вы всегда можете изменить каталог. Запустите скрипт, который инициирует это (включая изменение приглашения на предупреждение).
Ответ №1:
Использование дочернего процесса только для запуска pwd
является излишним. Вы обнаружите, что ваш текущий каталог всегда хранится в переменной PWD
. Эта переменная поддерживается zsh автоматически.
Вы можете узнать, находится ли ваш рабочий каталог в определенном каталоге или ниже dir
него, с помощью
if [[ $PWD:A == $dir:A || $PWD:A == $dir:A/** ]]
then
# I am in $dir or below it
...
fi
:A
Заботится о случаях, когда один из компонентов пути, участвующих в сравнении, оказывается символической ссылкой. Я не уверен, понадобится ли вам это PWD
, но это не повредит его использованию.