Comment appeler une fonction à l'intérieur d'une autre fonction


12

Je travaille actuellement dans un script shell pour surveiller les ressources d'un serveur. J'ai une fonction et je veux savoir: comment appeler une deuxième fonction à l'intérieur de la principale?

Exemple:

funct mainfunct(){

echo "Text to show here" **$secondfunct**

}

funct secondfunct(){
commands
}

Écrivez le nom de la première fonction dans le corps de la deuxième fonction?
123

1
Quelle coquille est-ce? Je ne reconnais pas la partie "funct".
Jeff Schaller

Réponses:


14

En ksh ou bash,

mainfunct() {
  echo "Text to show here" $(secondfunct)
}

secondfunct() {
  echo commands here
}

mainfunct

Génère les éléments suivants:

Texte pour afficher ici les commandes ici


1
Il convient de noter que le $(secondfunct)ici s'étendrait aux mots résultant de l'opérateur split + glob appliqué à la sortie standard de secondfunctdépouillé de tous les caractères de fin de ligne.
Stéphane Chazelas

1
Cela ne se limite pas à bashet ksh. Cela fonctionnerait dans n'importe quel shell POSIX (et certains non POSIX comme ash ou zsh (bien que zsh ne fasse pas la partie glob et ne s'étouffe pas sur les octets NUL))
Stéphane Chazelas

4
android@localhost:~/test$ cat fun.sh
function myname {
  echo "my name is raja"
}

function call {
  myname
}
call

Lol, c'est tout ce que j'avais à faire pour appeler d'autres fonctions déclarées dans mon .bashrcfichier
takanuva15
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.