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
}
vicdeveloper
fuente
¿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í

Jeff Schaller
fuente
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
rɑːdʒɑ
fuente
Lol, esto es todo lo que tenía que hacer para llamar a otras funciones declaradas en mi .bashrcarchivo
takanuva15