Как вызвать функцию внутри другой функции


12

Я работаю на самом деле в сценарии оболочки для мониторинга ресурсов сервера. У меня есть функция, и я хочу знать: как я могу вызвать вторую функцию внутри основной?

Пример:

funct mainfunct(){

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

}

funct secondfunct(){
commands
}

Написать имя первой функции в теле второй функции?
123

1
Что это за оболочка? Я не узнаю «функциональную» часть.
Джефф Шаллер

Ответы:


14

В кш или баш,

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

secondfunct() {
  echo commands here
}

mainfunct

Создает следующее:

Текст, чтобы показать здесь команды здесь


1
Следует отметить, что $(secondfunct)здесь расширились бы слова, полученные от оператора split + glob, примененного к стандартному выводу secondfunctзачеркнутых всех завершающих символов новой строки.
Стефан Шазелас

1
Это не ограничивается bashи ksh. Это работало бы в любой оболочке POSIX (и некоторых не POSIX, таких как ash или zsh (хотя zsh не делал бы глобальную часть и не подавлял байты NUL))
Стефан Шазелас

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

function call {
  myname
}
call

Lol, это все, что мне нужно было сделать, чтобы вызвать другие функции, объявленные в моем .bashrcфайле
takanuva15
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.