Bagaimana memanggil suatu fungsi di dalam fungsi lain


12

Saya bekerja sebenarnya dalam skrip shell untuk memantau sumber daya server. Saya memiliki fungsi dan saya ingin tahu: bagaimana saya bisa memanggil fungsi kedua di dalam yang utama?

Contoh:

funct mainfunct(){

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

}

funct secondfunct(){
commands
}

Tuliskan nama fungsi pertama di tubuh fungsi kedua?
123

1
Shell apa itu? Saya tidak mengenali bagian "funct".
Jeff Schaller

Jawaban:


14

Dalam ksh atau bash,

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

secondfunct() {
  echo commands here
}

mainfunct

Menghasilkan yang berikut:

Teks untuk ditampilkan di sini perintah di sini


1
Perlu dicatat bahwa di $(secondfunct)sini akan berkembang menjadi kata-kata yang dihasilkan dari operator split + glob yang diterapkan pada output standar secondfunctdari semua karakter baris baru yang dilewati.
Stéphane Chazelas

1
Itu tidak terbatas pada bashdan ksh. Itu akan bekerja pada shell POSIX mana pun (dan beberapa yang bukan POSIX seperti ash atau zsh (meskipun zsh tidak akan mengerjakan bagian glob dan tidak tersedak NUL bytes))
Stéphane Chazelas

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

function call {
  myname
}
call

Lol ini yang harus saya lakukan untuk memanggil fungsi lain yang dideklarasikan dalam .bashrcfile saya
takanuva15
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.