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

12

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

Пример:

funct mainfunct(){

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

}

funct secondfunct(){
commands
}
vicdeveloper
источник
Написать имя первой функции в теле второй функции?
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
rɑːdʒɑ
источник
Lol, это все, что мне нужно было сделать, чтобы вызвать другие функции, объявленные в моем .bashrcфайле
takanuva15