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.