Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình Bash

Làm chủ Bash Functions: Viết script tái sử dụng như chuyên gia

Khi bạn lập trình, bạn thực tế định nghĩa một thủ tục, hoặc routine, bạn muốn máy tính thực hiện. So sánh đơn giản lập trình với làm bánh mì: liệt kê nguyên liệu một lần thiết lập môi trường làm việc, sau đó liệt kê bước phải làm để được ổ bánh mì. Cả lập trình và làm bánh, một số bước phải lặp lại ở khoảng thời gian khác nhau. Làm bánh mì, ví dụ, quy trình nuôi men sourdough:

STIR=100
SNOOZE=86400

function feed_culture {
remove_from(pantry)
add(flour, water)
stir($STIR)
sleep($SNOOZE)
}

Và sau đó, nhào và ủ bột:

KNEAD=600
SNOOZE=7200

function process_dough {
remove_from(proofing_drawer)
knead($KNEAD)
return_to_drawer($SNOOZE)
}

Trong lập trình, các subroutine này biểu diễn qua hàm (functions). Hàm quan trọng cho lập trình viên vì giúp giảm code lặp, giảm bảo trì. Ví dụ, trong kịch bản làm bánh mì lập trình, nếu cần thay thời gian ủ bột, miễn đã dùng hàm trước, chỉ thay giá trị giây một lần, bằng biến (gọi SNOOZE trong code mẫu) hoặc trực tiếp trong subroutine xử lý bột. Tiết kiệm thời gian lớn, vì không phải săn qua codebase mọi nhắc đến bột nở, thậm chí lo bỏ sót. Nhiều bug do giá trị không đổi hoặc sed thực thi kém hy vọng bắt mọi match mà không săn thủ công.

Trong Bash, định nghĩa hàm dễ dàng bằng cách đặt trong file script bạn viết hoặc file riêng. Nếu lưu hàm vào file riêng, bạn source nó vào script như include thư viện C/C++ hoặc import module Python. Tạo hàm Bash, dùng từ khóa function:

function foo {
# code here
}

Ví dụ đơn giản (hơi gượng, vì có thể đơn giản hơn) hàm hoạt động với tham số:

#!/usr/bin/env bash
ARG=$1

function mimic {
if [[ -z $ARG ]]; then
ARG='world'
fi
echo "hello $ARG"
}

mimic $ARG

Kết quả:

$ ./mimic
hello world
$ ./mimic everybody
hello everybody

Chú ý dòng cuối script, thực thi hàm. Điểm thường gây nhầm lẫn cho người mới: hàm không tự chạy. Chúng tồn tại như potential routine cho đến khi được gọi.

Nếu không có dòng gọi hàm, hàm chỉ được định nghĩa và không bao giờ chạy.

Nếu mới với Bash, thử chạy script mẫu lần có dòng cuối và lần comment dòng cuối.

Sử dụng hàm

Hàm là khái niệm lập trình thiết yếu, kể cả script đơn giản. Càng thoải mái với hàm, bạn càng tốt khi đối mặt vấn đề phức tạp cần thứ động hơn chỉ dòng lệnh khai báo. Giữ hàm chung trong file riêng cũng tiết kiệm công sức, giúp xây dựng routine thường dùng để tái sử dụng across projects. Xem thói quen scripting của bạn và tìm chỗ hàm phù hợp.