Wie rufe ich eine Funktion in einer anderen Funktion auf?

11

Ich arbeite tatsächlich in einem Shell-Skript, um die Ressourcen eines Servers zu überwachen. Ich habe eine Funktion und möchte wissen: Wie kann ich eine zweite Funktion innerhalb der Hauptfunktion aufrufen?

Beispiel:

funct mainfunct(){

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

}

funct secondfunct(){
commands
}
Entwickler
quelle
Den Namen der ersten Funktion in den Hauptteil der zweiten Funktion schreiben?
123
1
Welche Schale ist das? Ich erkenne den "Funktionsteil" nicht.
Jeff Schaller

Antworten:

13

In ksh oder bash,

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

secondfunct() {
  echo commands here
}

mainfunct

Erzeugt Folgendes:

Text, um hier Befehle hier anzuzeigen

Jeff Schaller
quelle
1
Es sollte beachtet werden, dass das $(secondfunct)hier auf die Wörter erweitert wird, die sich aus dem Operator split + glob ergeben, der auf die Standardausgabe secondfunctaller nachgestellten Zeilenumbrüche angewendet wird.
Stéphane Chazelas
1
Das ist nicht auf bashund beschränkt ksh. Das würde in jeder POSIX-Shell funktionieren (und in einigen Nicht-POSIX-Shell wie ash oder zsh (obwohl zsh den Glob-Teil nicht
Stéphane Chazelas
4
android@localhost:~/test$ cat fun.sh
function myname {
  echo "my name is raja"
}

function call {
  myname
}
call
rɑːdʒɑ
quelle
Lol das ist alles, was ich tun musste, um andere Funktionen aufzurufen, die in meiner .bashrcDatei deklariert sind
takanuva15