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
}
vicdeveloper
la source
É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

Jeff Schaller
la source
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
rɑːdʒɑ
la source
Lol, c'est tout ce que j'avais à faire pour appeler d'autres fonctions déclarées dans mon .bashrcfichier
takanuva15