
Я хочу определить некоторые alias iex="iex -S mix"
только для одного каталога - этот псевдоним должен работать только тогда, когда я cd
перехожу в этот каталог. Другое требование - эта функциональность должна быть размещена внутри этого каталога, hook
файла или чего-то еще, потому что я хочу поделиться этим каталогом как git-репо.
Как мне это сделать?
решение1
Если вы iex
хотитетолькоработа в одном каталоге иникогдагде-нибудь еще попробуйте это:
alias iex='[ $(pwd) = /path/to/special/dir ] && iex –S mix'
Если вы хотите iex
работать по-другому в других каталогах, попробуйте сделать так:
alias iex='[ $(pwd) = /path/to/special/dir ] && iex –S mix || iex'
решение2
Моя текущая версия разработки Bourne Shell (bosh) реализует эту функцию с 6 jears. Проверьте страницу man:
http://schillix.sourceforge.net/man/man1/bosh.1.html
и взгляните на local persistent aliases
- псевдонимы, локальные по отношению к каталогу и постоянные, поскольку они хранятся в файле .locals
соответствующего каталога.
Мне интересна обратная связь, в частности, должны ли быть также .locals.#
, где # — идентификатор пользователя, которому разрешено их использовать.