Je travaille dans un environnement qui a beaucoup de magie Shell Shell qui traîne. L'une des choses les plus utilisées depuis la ligne de commande sont les fonctions bash qui proviennent d'un fichier quelconque inclus dans un fichier quelconque inclus dans un fichier quelconque ... inclus dans mon .bash_profile. Existe-t-il un moyen d'obtenir la définition ou mieux encore l'emplacement de la définition de ces fonctions sans avoir à les traquer à travers 5 niveaux d'inclusions ?
Réponses
Trop de publicités?
Frankie Drake
Points
191
En supposant que vous ayez une fonction nommée foo, les commandes ci-dessous obtiendront l'emplacement de la définition de la fonction, c'est-à-dire qu'elles obtiendront le nom du fichier dans lequel la fonction est définie ainsi que le numéro de ligne auquel la fonction est définie à l'intérieur de ce fichier.
# Turn on extended shell debugging
shopt -s extdebug
# Dump the function's name, line number and fully qualified source file
declare -F foo
# Turn off extended shell debugging
shopt -u extdebug
Dans mon cas, la sortie de ces commandes est la suivante :
foo 32 /source/private/main/developer/cue.pub.sh
Joshua Goldberg
Points
310
Ignacio Vazquez-Abrams
Points
107432
Joshua Goldberg
Points
310