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í cho FILENAME.
  • Nếu FILENAME tồn tại, mã thoát source 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.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments