Penguasaan Baris Perintah Linux & Penskripan Bash · Pelajaran

Fungsi dalam Skrip Bash

Susun kod anda dengan fungsi, tingkatkan kebolehgunaan semula serta jadikan skrip lebih kemas dan mudah diselenggarakan.

Pelajaran 2 daripada 411 langkah

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."
fi

Menangkap 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_input atau create_backup.
  • Gunakan local: Sentiasa gunakan local untuk 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 local untuk skop pemboleh ubah.
  • Menghantar hujah dengan $1, $#, $@.
  • Menetapkan status keluar dengan return.
  • Menangkap keluaran dengan echo dan 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!

Percuma untuk bermula

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

  1. Binaan Gelung (for, while)
  2. Fungsi dalam Skrip Bash
  3. Argumen dan Pilihan Skrip ($@, $#, getopts)
  4. Pernyataan case dan Pemadanan Corak
← Kembali ke Penguasaan Baris Perintah Linux & Penskripan Bash