Fungsi dalam Skrip Bash
Susun kod anda dengan fungsi, tingkatkan kebolehgunaan semula serta jadikan skrip lebih kemas dan mudah diselenggarakan.
Fungsi dalam Skrip Bash ialah pelajaran Penguasaan Baris Perintah Linux & Penskripan Bash percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Penguasaan Baris Perintah Linux & Penskripan Bash, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Penguasaan Baris Perintah Linux & Penskripan Bash merangkumi sejumlah 4 pelajaran.
Apakah Fungsi Bash?
Dalam penulisan skrip Bash, fungsi ialah sekumpulan kod yang melaksanakan tugasan tertentu. Anggaplah fungsi sebagai skrip kecil di dalam skrip utama anda.
Fungsi membantu anda:
- Menggunakan Semula Kod: Tulis sesuatu logik sekali dan panggilnya berulang kali.
- Menyusun Skrip: Pecahkan tugasan kompleks kepada unit yang lebih kecil dan mudah diurus.
- Meningkatkan Kebolehbacaan: Jadikan skrip anda lebih mudah difahami dan diselenggara.
Mentakrifkan Fungsi Ringkas
Terdapat dua cara biasa untuk mentakrifkan fungsi dalam Bash. Kedua-duanya menghasilkan keputusan yang sama. Sintaks pertama ialah yang paling lazim digunakan.
Cuba jalankan contoh ini. Contoh ini mentakrifkan fungsi tetapi belum memanggilnya!
#!/bin/bash
# Method 1: The most common way
my_first_func () {
echo "Hello from my_first_func!"
}
# Method 2: Using the 'function' keyword
function my_second_func {
echo "Hello from my_second_func!"
}
echo "Functions defined, but not called."Memanggil Fungsi Anda
Mentakrifkan fungsi tidak akan melaksanakannya. Untuk menjalankan kod di dalam fungsi, anda hanya perlu memanggilnya menggunakan namanya, seperti mana-mana arahan lain.
Lihat cara kami memanggil my_function selepas mentakrifkannya:
#!/bin/bash
my_function () {
echo "This message is from inside the function."
}
echo "Script started."
my_function # Call the function here
echo "Script finished."Pemboleh Ubah Setempat dalam Fungsi
Secara lalai, pemboleh ubah yang ditakrifkan di dalam fungsi Bash adalah global, iaitu pemboleh ubah tersebut boleh dicapai dan diubah suai dari mana-mana bahagian dalam skrip.
Untuk mengelakkan kesan sampingan yang tidak disengajakan dan memastikan fungsi anda terasing, gunakan kata kunci local untuk mengisytiharkan pemboleh ubah sebagai setempat. Pemboleh ubah setempat hanya wujud dalam fungsi tersebut.
#!/bin/bash
global_message="I'm a global message"
my_function () {
local func_message="I'm a local message"
global_message="I've been changed by the function!"
echo "Inside func: $func_message"
echo "Inside func: $global_message"
}
echo "Before func: $global_message"
my_function
echo "After func: $global_message"
echo "After func: $func_message (This will be empty)"Menghantar Hujah kepada Fungsi
Anda boleh menghantar maklumat kepada fungsi menggunakan hujah, sama seperti arahan shell biasa. Di dalam fungsi, hujah ini dicapai menggunakan pemboleh ubah khas:
$1,$2,$3...: Hujah individu$#: Jumlah keseluruhan hujah$@: Semua hujah sebagai rentetan berasingan
#!/bin/bash
greet_user () {
echo "Hello, $1!"
echo "You are $2 years old."
echo "Total arguments received: $#"
echo "All arguments: $@"
}
echo "Calling greet_user with two arguments:"
greet_user "Alice" 30
echo "\nCalling greet_user with one argument:"
greet_user "Bob"Status Keluar Fungsi (Pemulangan)
Fungsi, seperti mana-mana arahan, mengembalikan status keluar. Mengikut konvensyen, 0 bermaksud berjaya, manakala sebarang nilai bukan sifar menunjukkan ralat.
Anda menggunakan kata kunci return untuk menetapkan status keluar ini. Kemudian, anda boleh menyemaknya menggunakan pemboleh ubah khas $? sejurus selepas panggilan fungsi.
#!/bin/bash
check_age () {
local age=$1
if [ "$age" -ge 18 ]; then
return 0 # Success: 18 or older
else
return 1 # Failure: under 18
fi
}
check_age 25
echo "Exit status for 25: $?"
check_age 16
echo "Exit status for 16: $?"
if check_age 20; then
echo "User is an adult."
else
echo "User is a minor."
fiMenangkap Keluaran Fungsi
Walaupun return menghantar status keluar, jika anda mahu fungsi menghasilkan 'nilai' yang boleh disimpan dalam pemboleh ubah, fungsi tersebut hendaklah echo nilai itu ke keluaran piawai.
Kemudian, anda boleh menangkap keluaran ini menggunakan penggantian arahan, dengan membungkus panggilan fungsi dalam $(...).
#!/bin/bash
get_full_name () {
local first_name=$1
local last_name=$2
echo "$first_name $last_name" # Echo the full name
}
name="$(get_full_name "John" "Doe")"
echo "Full name captured: $name"
calculate_area () {
local length=$1
local width=$2
echo $((length * width))
}
area=$(calculate_area 10 5)
echo "Calculated area: $area"Contoh Praktikal: Pencatat Log
Berikut ialah contoh praktikal fungsi yang boleh digunakan semula: pencatat log ringkas. Fungsi ini boleh dipanggil di mana-mana sahaja dalam skrip anda untuk mencetak mesej dengan cap masa, sekali gus memudahkan penyahpepijatan dan penjejakan.
#!/bin/bash
log_message () {
local timestamp=$(date +"%Y-%m-%d %H:%M:%S")
local message="$1"
echo "[$timestamp] $message"
}
log_message "Script execution started."
sleep 1 # Simulate some work
log_message "Processing user data..."
sleep 1
log_message "Operation completed successfully."Amalan Terbaik Fungsi
Untuk menulis skrip yang jelas dan mudah diselenggara menggunakan fungsi, pertimbangkan petua berikut:
- Pastikan Ringkas: Setiap fungsi hendaklah melakukan satu perkara dengan baik.
- Nama yang Bermakna: Gunakan nama deskriptif seperti
validate_inputataucreate_backup. - Gunakan
local: Sentiasa gunakanlocaluntuk pemboleh ubah di dalam fungsi bagi mengelakkan konflik. - Tambah Komen: Terangkan perkara yang dilakukan oleh fungsi anda, hujahnya dan perkara yang dipulangkannya.
- Sahkan Masukan: Jika fungsi menjangkakan hujah tertentu, semak hujah tersebut.
Semakan Hujah Fungsi
Uji pemahaman anda tentang cara hujah dihantar kepada dan dicapai dalam fungsi Bash.
Fungsi: Imbas Kembali dan Langkah Seterusnya
Syabas! Anda telah menguasai fungsi Bash.
Perkara yang telah dipelajari:
- Mentakrifkan dan memanggil fungsi.
- Menggunakan
localuntuk skop pemboleh ubah. - Menghantar hujah dengan
$1,$#,$@. - Menetapkan status keluar dengan
return. - Menangkap keluaran dengan
echodan penggantian arahan.
Fungsi amat penting untuk menulis skrip Bash yang modular, boleh digunakan semula dan mudah diselenggara. Teruskan berlatih supaya skrip anda menjadi lebih berkuasa dan tersusun!
Pelajari Bash dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 22
- Pelajaran
- 88
Soalan Lazim
Adakah pelajaran “Fungsi dalam Skrip Bash” percuma?
Ya — teks penuh “Fungsi dalam Skrip Bash” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Penguasaan Baris Perintah Linux & Penskripan Bash, tingkat taraf kepada CoddyKit PRO. Kursus Penguasaan Baris Perintah Linux & Penskripan Bash merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Fungsi dalam Skrip Bash”?
Susun kod anda dengan fungsi, tingkatkan kebolehgunaan semula serta jadikan skrip lebih kemas dan mudah diselenggarakan. Anda berlatih Penguasaan Baris Perintah Linux & Penskripan Bash menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Penguasaan Baris Perintah Linux & Penskripan Bash?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Penguasaan Baris Perintah Linux & Penskripan Bash di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Fungsi dalam Skrip Bash” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Penguasaan Baris Perintah Linux & Penskripan Bash ini?
Ya. Setiap pelajaran Penguasaan Baris Perintah Linux & Penskripan Bash menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Binaan Gelung (for, while)
- Fungsi dalam Skrip Bash
- Argumen dan Pilihan Skrip ($@, $#, getopts)
- Pernyataan case dan Pemadanan Corak