Cómo llamar a una función dentro de otra función


12

Estoy trabajando realmente en un script de shell para monitorear los recursos de un servidor. Tengo una función y quiero saber: ¿cómo puedo llamar a una segunda función dentro de la principal?

Ejemplo:

funct mainfunct(){

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

}

funct secondfunct(){
commands
}

¿Escribir el nombre de la primera función en el cuerpo de la segunda función?
123

1
¿Qué caparazón es ese? No reconozco la parte "funcional".
Jeff Schaller

Respuestas:


14

En ksh o bash,

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

secondfunct() {
  echo commands here
}

mainfunct

Genera lo siguiente:

Texto para mostrar aquí los comandos aquí


1
Cabe señalar que el $(secondfunct)aquí se expandiría a las palabras resultantes del operador split + glob aplicado a la salida estándar secondfunctde todos los caracteres de línea nueva eliminados.
Stéphane Chazelas

1
Eso no se limita a bashy ksh. Eso funcionaría en cualquier shell POSIX (y algunos no POSIX como ash o zsh (aunque zsh no haría la parte glob y no se atragantaría con bytes NUL))
Stéphane Chazelas

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

function call {
  myname
}
call

Lol, esto es todo lo que tenía que hacer para llamar a otras funciones declaradas en mi .bashrcarchivo
takanuva15
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.