J'ai une configuration Z-shell que j'utilise sur plusieurs serveurs et sur mon ordinateur personnel. Sur mon ordinateur personnel, j'ai un alias pour un exécutable que nous appellerons foo
. Voici la ligne dans mon zshrc pour alias à ce programme:
alias foo=/path/to/foo
Sur plusieurs serveurs, le chemin de foo
est différent et je ne peux pas le déplacer vers un répertoire commun comme ~/bin
:
alias foo=/sever/path/to/foo
J'ai besoin de l'alias pour être foo sur toutes les machines, alors jene peut pas créer deux alias distincts comme foo et foo-server par exemple. Existe-t-il un moyen de faire en sorte que le Z-shell détecte la machine sur laquelle je me trouve et modifie l'alias en foo automatiquement? Naïvement, quelque chose comme:
si sur un ordinateur personnel:
alias foo=/path/to/foo
autre:
alias foo=/sever/path/to/foo
Réponses:
1 pour la réponse № 1La meilleure solution que je puisse trouver est la suivante:
#{{{ Alias foo if it is in a specific location
if [[ -x ="/path/to/foo" ]]; then
alias foo="/path/to/foo"
fi
#}}}
Merci à larsmans d’avoir suggéré le -x
drapeau
0 pour la réponse № 2
Vous ne devez rien utiliser de spécifique zsh. Vous pouvez utiliser hostname (ou domainname ou utiliser la variable hostname définie par zsh) et vérifier s’il s’agit de votre ordinateur ou de votre serveur. Puis branchez. Cela évite le problème créé si le fichier / chemin / vers / foo existe mais n’est pas le bon, ce que crée la réponse de larsmans.