J'ai été frustré auparavant par les différences de sortie de la whichcommande sur différentes plates-formes (Linux vs Solaris vx. OS X), avec différents shells pouvant également jouer sur le sujet. typea été suggéré comme une meilleure alternative, mais comment serait-ce portable?
Dans le passé, j'ai écrit des fonctions qui analysent la sortie whichet gèrent les différents cas d'utilisation que j'ai rencontrés. Ils fonctionnent sur toutes les machines que j'utilise, et ne conviennent donc pas à mes scripts personnels, mais cela semble terriblement peu fiable pour les logiciels que je vais publier quelque part pour que d'autres puissent les utiliser.
Pour ne prendre qu'un exemple possible, supposons que je doive détecter à partir d'un script si bash et zsh sont disponibles sur une machine, puis exécuter une commande avec zsh s'il est présent, et avec bash si zsh ne l'est pas et bash est suffisant version pour ne pas avoir de bug particulier. La plupart du reste du script pourrait être le shell Bourne ou Ruby ou toute autre chose, mais cette chose particulière doit être faite (AFAIK) avec zsh ou une version récente de bash.
Puis-je compter sur la typedisponibilité sur toutes les plateformes? Existe-t-il une autre alternative à whichlaquelle peut facilement et systématiquement répondre à la question de savoir si un logiciel particulier est installé?
(Si vous voulez également donner des idées spécifiquement liées à l'exemple que j'ai donné, c'est très bien, mais je pose principalement des questions sur le cas général: quel est le moyen le plus fiable pour savoir si une chose particulière est installée sur une machine donnée ?)
hashetcommand -v.