Come chiamare una funzione all'interno di un'altra funzione


12

Attualmente sto lavorando a uno script di shell per monitorare le risorse di un server. Ho una funzione e voglio sapere: come posso chiamare una seconda funzione all'interno di quella principale?

Esempio:

funct mainfunct(){

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

}

funct secondfunct(){
commands
}

Scrivi il nome della prima funzione nel corpo della seconda funzione?
123

1
Che shell è quella? Non riconosco la parte "funct".
Jeff Schaller

Risposte:


14

In ksh o bash,

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

secondfunct() {
  echo commands here
}

mainfunct

Genera quanto segue:

Testo per mostrare qui i comandi qui


1
Va notato che il $(secondfunct)qui si espanderebbe alle parole risultanti dall'operatore split + glob applicato all'output standard di secondfunctstripped di tutti i nuovi caratteri finali.
Stéphane Chazelas

1
Questo non è limitato a bashe ksh. Funzionerebbe con qualsiasi shell POSIX (e alcune non POSIX come ash o zsh (anche se zsh non farebbe la parte glob e non soffocerebbe sui byte NUL))
Stéphane Chazelas

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

function call {
  myname
}
call

Lol, questo è tutto ciò che dovevo fare per chiamare altre funzioni dichiarate nel mio .bashrcfile
takanuva15,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.