Предположим, у вас есть псевдоним go
, но вы хотите, чтобы он делал разные вещи в разных каталогах?
В одном каталоге он должен работать cmd1
, а в другом -cmd2
Кстати, у меня уже есть псевдонимы для переключения на вышеуказанные каталоги, так возможно ли добавить go
псевдоним для foo
псевдонима?
alias "foo=cd /path/to/foo"
Работаем в bash (?) На OSX.
Ответы:
Не совсем точно, что вы спрашиваете, но псевдоним просто расширяется до того, что в псевдониме. Если у вас есть два псевдонима, вы можете добавлять различные команды, даже псевдонимы.
В любой другой ситуации вы можете указать функцию в вашем
.bashrc
Если у вас есть больше вариантов, вы можете лучше использовать структуру дел.
источник
У меня такое ощущение, что вы очень «ориентированы на каталоги», и в этом случае это может лучше подойти вашему менталитету.
(Но если честно, я думаю, что это вообще плохая идея, вы бы хотели, чтобы команды были глобальными.)
В
.bashrc
, положитьalias go="./.cmd"
(потомsource ~/.bashrc
).Затем в каждом таком каталоге поместите скрипт с именем
.cmd
, аchmod +x .cmd
затем простоgo
сделайте свое дело.источник
touch .TESTNO; echo 2 > .TESTNO
) в каждый каталог, а затем в своей функции найти этот файл и выполнить ветвление в соответствии с тем, какой номер теста у файла .TESTNO. содержит. Хотя это совсем не сложно, вы, вероятно, не можете использовать псевдоним для этого; Вы должны использовать функцию.Я работаю над проектом, который выполняет именно это. Проверьте это: localalias .
Вот демо:
Достаточно забавно, я фактически использовал
go
в качестве примера в демо. Я не показывал переключающие каталоги (что-то, что я должен изменить в демо), но функции сla
командой действительно локальны по отношению к каталогу, в котором они определены.источник
Аналогичная вещь, но при условии, что «go» - это команда, для которой вам нужна другая функциональность в определенном каталоге.
источник
Если вы добавите следующую функцию в ваш .bashrc
Каждый раз, когда вы перейдете в каталог с файлом .aliases, он будет получен.
Будьте осторожны с безопасностью, если другие могут создавать файлы на вашем компьютере.
С помощью этого трюка псевдонимы никогда не удаляются, но вы можете написать столько кода, сколько захотите в функции.
Ондир использует этот трюк и имеет массу наворотов.
http://swapoff.org/ondir.html#download
источник
.bashrc
. (Это не будет работатьcron
, например).