Como chamar uma função dentro de outra função


12

Na verdade, estou trabalhando em um script de shell para monitorar os recursos de um servidor. Eu tenho uma função e quero saber: como posso chamar uma segunda função dentro da principal?

Exemplo:

funct mainfunct(){

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

}

funct secondfunct(){
commands
}

Escreva o nome da primeira função no corpo da segunda função?
123

1
Que concha é essa? Não reconheço a parte "funct".
Jeff Schaller

Respostas:


14

Em ksh ou bash,

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

secondfunct() {
  echo commands here
}

mainfunct

Gera o seguinte:

Texto para mostrar aqui comandos aqui


1
Deve-se notar que o $(secondfunct)aqui seria expandido para as palavras resultantes do operador split + glob aplicado à saída padrão de secondfunctstripped de todos os caracteres de nova linha à direita.
Stéphane Chazelas 4/03/16

1
Isso não se limita a bashe ksh. Que iria trabalhar em qualquer shell POSIX (e alguns POSIX não como cinza ou zsh (embora zsh não faria parte glob e não sufoca NUL bytes))
Stéphane Chazelas

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

function call {
  myname
}
call

Lol, isso é tudo que eu tinha que fazer para chamar outras funções declaradas no meu .bashrcarquivo
takanuva15 18/01/01
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.