Supposons que vous ayez un alias go
, mais que vous souhaitiez qu'il fasse différentes choses dans différents répertoires?
Dans un répertoire, il doit s'exécuter cmd1
, mais dans un autre répertoire, il doit s'exécutercmd2
Soit dit en passant, j'ai déjà un alias pour passer aux répertoires ci-dessus, est-il donc possible d'ajouter l' go
affectation d'alias à l' foo
alias?
alias "foo=cd /path/to/foo"
Travailler en bash (?) Sur OSX.
Réponses:
Il n'est pas complètement sûr de ce que vous demandez, mais un alias se développe simplement à ce qui est dans l'alias. Si vous avez deux alias, vous pouvez ajouter les différentes commandes, même des alias.
Dans toute autre situation, vous pouvez spécifier une fonction dans votre
.bashrc
Si vous avez plus de choix, vous pouvez mieux utiliser une structure de cas.
la source
J'ai l'impression que vous êtes très "orienté répertoire" et, dans ce cas, cela pourrait mieux correspondre à votre mentalité.
(Mais pour être honnête, je pense que c'est une mauvaise idée, vous voudriez que les commandes soient globales.)
Dans
.bashrc
, mettezalias go="./.cmd"
(alorssource ~/.bashrc
).Ensuite, dans chacun de ces répertoires, mettez un script appelé
.cmd
, puischmod +x .cmd
,go
faites votre truc.la source
touch .TESTNO; echo 2 > .TESTNO
) dans chaque répertoire, puis, dans votre fonction, rechercher ce fichier et créer une branche en fonction du numéro de test du fichier .TESTNO contient. Bien que cela ne soit pas du tout difficile, vous ne pouvez probablement pas utiliser d'alias pour cela; vous devez utiliser une fonction.Je travaille sur un projet qui accomplit exactement cela. Découvrez-le: localalias .
Voici une démo:
Assez drôle, j'ai utilisé
go
comme exemple dans la démo. Je n'ai pas montré de changement de répertoire (quelque chose que je devrais changer dans la démo) mais les fonctions avec lala
commande sont en effet locales au répertoire dans lequel elles sont définies.la source
Une chose similaire, mais en supposant que "go" est une commande dont vous souhaitez des fonctionnalités différentes dans un répertoire spécifique.
la source
Si vous ajoutez la fonction suivante à votre .bashrc
Chaque fois que vous cd dans un répertoire avec un fichier .aliases, il sera obtenu.
Attention à la sécurité si d'autres peuvent créer des fichiers sur votre machine.
Avec cette astuce, les alias ne sont jamais supprimés, mais vous pouvez écrire autant de code que vous le souhaitez dans la fonction.
ondir utilise cette astuce et a une tonne de cloches et de sifflets.
http://swapoff.org/ondir.html#download
la source
.bashrc
. (Cela ne fonctionnera pascron
, par exemple).