Lệnh source
đọc và thực thi lệnh từ tập tin quy định như đối số của nó trong môi trường shell hiện hành. Sẽ rất hữu ích khi tải các hàm, biến và tệp cấu hình vào các tập lệnh shell.
source
là một trình bao được tích hợp sẵn trong Bash và các trình shell phổ biến khác được sử dụng trong các hệ điều hành Linux và UNIX. Hành vi của nó có thể hơi khác từ shell này sang shell khác.
Cú pháp lệnh source
Cú pháp của source
như sau:
source FILENAME [ARGUMENTS] . FILENAME [ARGUMENTS]
source
và.
(một dấu chấm) là cùng một lệnh.- Nếu
FILENAME
không phải là một đường dẫn đầy đủ đến một tệp, lệnh sẽ tìm kiếm tệp trong các thư mục được chỉ định trong$PATH
biến môi trường . Nếu tệp không được tìm thấy trong$PATH
, lệnh sẽ tìm tệp trong thư mục hiện tại. - Nếu bất kỳ cái nào
ARGUMENTS
được đưa ra, chúng sẽ trở thành tham số vị trí choFILENAME
. - Nếu
FILENAME
tồn tại, mã thoátsource
lệnh là 0 , ngược lại 1, nếu không tìm thấy tệp, nó sẽ trả về.
Ví dụ về lệnh source
Trong phần này, chúng ta sẽ xem xét một số ví dụ cơ bản về cách sử dụng source
.
Sourcing Functions
Nếu bạn có các tập lệnh shell sử dụng các chức năng tương tự, bạn có thể trích xuất chúng trong một tệp riêng biệt và sau đó nguồn tệp đó trong các tập lệnh của bạn.
Trong ví dụ này, chúng ta sẽ tạo một tệp bao gồm một hàm bash để kiểm tra xem người dùng đang chạy script có phải là root hay không, và nếu không, nó sẽ hiển thị một thông báo và thoát script.functions.sh
check_root () { if [[ $EUID -ne 0 ]]; then echo "This script must be run as root" exit 1 fi }
Bây giờ trong mỗi tập lệnh chỉ cần được chạy bởi người dùng root, chỉ cần mã nguồn functions.sh
và gọi hàm:
#!/usr/bin/env bash source functions.sh check_root echo "I am root"
Nếu bạn chạy tập lệnh ở trên với tư cách là người dùng không phải root, nó sẽ in “This script must be run as root” và thoát.
Ưu điểm của phương pháp này là các tập lệnh của bạn sẽ nhỏ hơn và dễ đọc hơn, bạn có thể sử dụng lại cùng một tệp chức năng bất cứ khi nào cần và trong trường hợp bạn cần sửa đổi một chức năng, bạn sẽ chỉ chỉnh sửa một tệp.
Tệp cấu hình Bash
Với lệnh source
, bạn cũng có thể đọc các biến từ một tệp. Các biến phải được đặt bằng cú pháp Bash , VARIABLE=VALUE
.
Hãy tạo một tệp cấu hình thử nghiệm: config.sh
VAR1="foo" VAR2="bar"
Trong tập lệnh bash của bạn, hãy sử dụng lệnh source
để đọc tệp cấu hình:
#!/usr/bin/env bash source config.sh echo "VAR1 is $VAR1" echo "VAR2 is $VAR2"
Nếu bạn chạy script, đầu ra sẽ giống như sau:
VAR1 is foo VAR2 is bar
Phần kết luận
Trong hướng dẫn này, bạn đã học cách sử dụng lệnh source
tích hợp trong các tập lệnh shell của mình.
Nếu bạn có bất kỳ câu hỏi hoặc phản hồi nào, vui lòng để lại bình luận.