Suponha que você tenha um alias go
, mas deseja que ele faça coisas diferentes em diretórios diferentes?
Em um diretório, ele deve ser executado cmd1
, mas em outro diretório, ele deve ser executadocmd2
A propósito, eu já tenho um alias para alternar para os diretórios acima, então é possível acrescentar a go
atribuição do foo
alias ao alias?
alias "foo=cd /path/to/foo"
Trabalhando no bash (?) No OSX.
Respostas:
Não está completamente certo o que você está perguntando, mas um alias apenas se expande para o que está no alias. Se você tiver dois aliases, poderá acrescentar os diferentes comandos, mesmo aliases.
Em qualquer outra situação, você pode especificar uma função no seu
.bashrc
Caso você tenha mais opções, poderá usar melhor uma estrutura de caso.
fonte
Tenho a sensação de que você é muito "orientado a diretórios" e, nesse caso, isso pode ajustar sua mentalidade melhor.
(Mas, para ser sincero, acho que é uma péssima idéia, você gostaria que os comandos fossem globais.)
Em
.bashrc
, coloquealias go="./.cmd"
(entãosource ~/.bashrc
).Em seguida, em cada diretório, coloque um script chamado
.cmd
, entãochmod +x .cmd
,go
faça o que quiser.fonte
touch .TESTNO; echo 2 > .TESTNO
) em cada diretório e, em sua função, procurar esse arquivo e ramificar de acordo com o número de teste do arquivo .TESTNO contém. Embora não seja nada difícil, você provavelmente não pode usar um alias para isso; você deve usar uma funçãoEstou trabalhando em um projeto que realiza exatamente isso. Confira: localidades .
Aqui está uma demonstração:
Engraçado, eu realmente usei
go
como exemplo na demo. Eu não mostrei os diretórios de alternância (algo que eu deveria alterar sobre a demonstração), mas as funções com ola
comando são realmente locais no diretório em que estão definidas.fonte
Coisa semelhante, mas assumindo que "go" é um comando do qual você deseja uma funcionalidade diferente em um diretório específico.
fonte
Se você adicionar a seguinte função ao seu .bashrc
Toda vez que você cd para um diretório com um arquivo .aliases, ele é obtido.
Cuidado com a segurança se outras pessoas puderem criar arquivos em sua máquina.
Com esse truque, os aliases nunca são removidos, mas você pode escrever o código que quiser na função.
ondir usa esse truque e tem uma tonelada de sinos e assobios.
http://swapoff.org/ondir.html#download
fonte
.bashrc
. (Isso não funcionarácron
, por exemplo).