Penguasaan Baris Perintah Linux & Penskripan Bash · Pelajaran

Fungsi Shell dan Petikan Boleh Guna Semula

Takrif dan gunakan fungsi Bash untuk mengumpulkan perintah menjadi blok binaan shell yang berparameter dan boleh digunakan semula.

Pelajaran 4 daripada 413 langkah

Fungsi Shell dan Petikan Boleh Guna Semula ialah pelajaran Penguasaan Baris Perintah Linux & Penskripan Bash percuma di CoddyKit. Ini ialah pelajaran 4 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.

Mengapa Fungsi Shell?

Fungsi shell mengumpulkan sekumpulan perintah di bawah satu nama supaya anda boleh menggunakannya semula tanpa menaip semula.

  • Lebih pantas daripada menyalin dan menampal perintah
  • Lebih kemas daripada alias yang panjang
  • Boleh menerima argumen, tidak seperti alias
mkcd() {
  mkdir -p "$1" && cd "$1"
}

Mentakrifkan Fungsi

Bentuk paling ringkas menggunakan sintaks name() { ... }. Perintah dalam pendakap dijalankan apabila anda memanggil fungsi mengikut namanya.

greet() {
  echo "Hello from a function"
}
greet

Argumen Fungsi

Fungsi menerima parameter kedudukan seperti skrip: $1, $2. $# ialah kiraannya dan $@ dikembangkan kepada semua argumen.

backup() {
  cp "$1" "$1.bak"
  echo "Backed up $1"
}
backup notes.txt

Nilai Pulangan dan Status Keluar

Fungsi memulangkan status keluar melalui return N (0-255). Gunakannya untuk semakan berjaya/gagal, bukan untuk memulangkan data.

is_root() {
  [ "$(id -u)" -eq 0 ] && return 0 || return 1
}
if is_root; then echo root; else echo normal; fi

Memulangkan Output melalui echo

Memandangkan return hanya membawa kod status, output sebenar dicetak dan ditangkap dengan $( ).

timestamp() {
  date +%Y%m%d-%H%M%S
}
name="log-$(timestamp).txt"
echo "$name"

Pemboleh Ubah Setempat

Secara lalai, pemboleh ubah dalam fungsi bersifat global. Gunakan local untuk mengehadkan skop pemboleh ubah kepada fungsi dan mengelakkan pencemaran shell anda.

count_lines() {
  local n
  n=$(wc -l < "$1")
  echo "$1 has $n lines"
}

Nilai Argumen Lalai

Gunakan pengembangan parameter ${1:-default} untuk kembali kepada nilai lalai apabila argumen tiada.

say() {
  local msg="${1:-Hello World}"
  echo "$msg"
}
say
say "Custom message"

Fungsi berbanding Alias

Alias hanya menggantikan teks dan tidak dapat menerima argumen kedudukan dengan kemas. Fungsi boleh membuat percabangan, gelung dan memproses input.

  • Gunakan alias untuk pintasan tetap
  • Gunakan function apabila anda memerlukan logik atau argumen
alias ll='ls -la'
lt() { ls -la "${1:-.}" | tail -n "${2:-5}"; }

Menjadikan Fungsi Kekal

Fungsi yang ditakrifkan pada gesaan akan hilang apabila shell keluar. Tambahkannya pada ~/.bashrc supaya tersedia dalam setiap sesi.

# Append to ~/.bashrc
extract() {
  case "$1" in
    *.tar.gz) tar xzf "$1" ;;
    *.zip)    unzip "$1" ;;
    *)        echo "Unknown format" ;;
  esac
}

Menyenaraikan dan Mengalih Keluar Fungsi

declare -F menyenaraikan nama fungsi; declare -f name memaparkan isi fungsi. Alih keluar fungsi dengan unset -f name.

declare -F
declare -f greet
unset -f greet

Menggabungkan Fungsi

Fungsi boleh memanggil fungsi lain, sekali gus membolehkan bahagian kecil yang boleh digunakan semula digabungkan menjadi alat yang lebih besar.

log() { echo "[$(date +%T)] $*"; }
deploy() {
  log "Starting deploy"
  log "Done"
}
deploy

Semakan Pantas

Uji pemahaman anda tentang fungsi shell.

Ulang Kaji

Anda telah belajar membina functions shell yang boleh digunakan semula:

  • Takrifkan dengan name() { ... } dan panggil mengikut nama
  • Gunakan $1, $@, $# untuk argumen dan return untuk status
  • Hadkan skop pemboleh ubah dengan local, dan kembalikan data melalui echo
  • Kekalkan fungsi dalam ~/.bashrc dan periksa dengan declare -f
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 Shell dan Petikan Boleh Guna Semula” percuma?

Ya — teks penuh “Fungsi Shell dan Petikan Boleh Guna Semula” 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 &amp; Penskripan Bash, tingkat taraf kepada CoddyKit PRO. Kursus Penguasaan Baris Perintah Linux &amp; Penskripan Bash merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Fungsi Shell dan Petikan Boleh Guna Semula”?

Takrif dan gunakan fungsi Bash untuk mengumpulkan perintah menjadi blok binaan shell yang berparameter dan boleh digunakan semula. Anda berlatih Penguasaan Baris Perintah Linux &amp; 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 &amp; Penskripan Bash?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Penguasaan Baris Perintah Linux &amp; 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 4 daripada 4.

Berapa lamakah pelajaran “Fungsi Shell dan Petikan Boleh Guna Semula” 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 &amp; Penskripan Bash ini?

Ya. Setiap pelajaran Penguasaan Baris Perintah Linux &amp; 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. Kawalan Kerja (bg, fg, jobs)
  2. Pengembangan Shell dan Globbing
  3. Alias dan Gesaan Tersuai
  4. Fungsi Shell dan Petikan Boleh Guna Semula
← Kembali ke Penguasaan Baris Perintah Linux &amp; Penskripan Bash