/ / Existe-t-il un moyen de définir un alias commun vers différents chemins d'accès pour différents ordinateurs dans le Z-shell? - unix, zsh

Existe-t-il un moyen de définir un alias commun sur différents chemins pour différents ordinateurs du Z-shell? - unix, zsh

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 № 1

La 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.