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
}

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


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

Lol das ist alles, was ich tun musste, um andere Funktionen aufzurufen, die in meiner .bashrcDatei deklariert sind
takanuva15
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.