GNU/Linux >> Belajar Linux >  >> Linux

fungsi panggilan dinyatakan di bawah ini

Seperti yang dikatakan orang lain, Anda tidak dapat melakukan itu.

Tetapi jika Anda ingin mengatur kode menjadi satu file sehingga program utama berada di bagian atas file, dan fungsi lainnya ditentukan di bawah, Anda dapat melakukannya dengan memiliki main terpisah fungsi.

Misalnya.

#!/bin/sh

main() {
    if [ "$1" = yes ]; then
        do_task_this
    else
        do_task_that
    fi
}

do_task_this() {
    ...
} 
do_task_that() {
    ...
} 

main "[email protected]"; exit

Saat kita memanggil main di akhir file, semua fungsi sudah ditentukan. Meneruskan "[email protected]" secara eksplisit ke main diperlukan untuk membuat argumen baris perintah skrip terlihat di fungsi.

exit eksplisit pada baris yang sama dengan panggilan ke main tidak wajib, tetapi dapat digunakan untuk mencegah skrip yang sedang berjalan menjadi kacau jika file skrip dimodifikasi. Tanpanya, shell akan mencoba melanjutkan membaca perintah dari file skrip setelah main pengembalian. (lihat Bagaimana cara membaca seluruh skrip shell sebelum menjalankannya?)


Tidak, fungsi harus ada di lingkungan shell pada saat memanggilnya.

"Panduan Gaya Shell" Google memiliki perbaikan untuk ini:

Fungsi yang disebut main diperlukan agar skrip cukup panjang untuk menampung setidaknya satu fungsi lainnya.

Di bagian paling akhir skrip, setelah semua fungsi, sebagai satu-satunya pernyataan yang tidak ada dalam suatu fungsi, Anda akan memilikinya

main "[email protected]"

Ini akan memanggil main berfungsi dengan parameter apa pun yang diberikan skrip. main fungsi dapat ditempatkan di bagian atas skrip (panduan gaya mengatakan untuk meletakkannya di bagian bawah, tetapi sekali lagi, ia mengatakan banyak hal).

Saat shell mencapai main panggilan, semua fungsi dalam skrip telah diuraikan dan karenanya dapat dipanggil dari dalam main fungsi.


Tidak, fungsi harus dideklarasikan sebelum digunakan. Skrip Shell dibaca baris demi baris dan ditindaklanjuti baris demi baris; jadi suatu fungsi tidak akan ada sampai deklarasinya dieksekusi.


Linux
  1. Panggil ke fungsi yang tidak ditentukan simplexml_load_file() – Kesalahan PHP [Terpecahkan]

  2. Php Fatal Error:Panggilan Ke Fungsi Tidak Terdefinisi Thesql_connect ()?

  3. Cara Membuat dan Memanggil Fungsi di Bash

  1. Kesalahan fatal:Panggilan ke fungsi yang tidak ditentukan mb_substr() Kesalahan

  2. memanggil fungsi ketika program selesai dengan ctrl c

  3. Bagaimana cara menerapkan batas waktu dalam panggilan fungsi baca?

  1. Kesalahan fatal:Memanggil ke fungsi yang tidak ditentukan curl_init()

  2. Kapan harus memeriksa EINTR dan mengulangi pemanggilan fungsi?

  3. Bisakah exit() gagal menghentikan proses?