====== Comment obtenir le répertoire contenant le script en exécution ====== * bash :declare -r __DIR__=$(dirname $(readlink -f "${BASH_SOURCE}")) * batch :set __DIR__=%~dp0 ====== Comment savoir si une commande est disponible ? ====== Il s'agit de déterminer si une commande, dont le chemin est inconnu à l'avance (sinon il suffit d'un ''%%[ -x /bin/truc ]%%''), est ou non disponible. Son répertoire doit cependant faire partie du PATH. La solution est d'exécuter la commande which : which va chercher la commande dans les répertoires constituant le PATH. On redirige toutes les sorties (standard + erreur) afin de ne voir ni son résultat ni erreur. Ensuite on teste sa valeur de retour (variable $?) pour savoir si elle a échoué ou non (valeur 0 renvoyée). Note : certains environnements dotent la commande which d'une option -s pour la rendre silencieuse (qui permettrait de supprimer la redirection vers /dev/null) mais dans un soucis de portabilité, on préférera ne pas s'y remettre ===== (ba|k)sh ===== which bidule &>/dev/null if [ $? -eq 0 ]; then # bidule est disponible else # bidule est indisponible fi ===== (t)csh ===== which bidule >& /dev/null if ($? == 0) then # bidule est disponible else # bidule est indisponible endif