Hướng dẫn sử dụng lệnh source trong Linux

0
unix command

Lệnh source là một shell command được tích hợp sẵn, được sử dụng để đọc và thực thi các lệnh chứa trong một file ở shell session hiện tại. Lệnh source thường được sử dụng để giữ lại hoặc thay đổi biến môi trường trong shell session hiện tại. Nói một cách ngắn gọn, đây là lệnh được sử dụng để thực thi các commands trong shell hiện tại.

Xem thêm: shell là gì

Lệnh command rất hữu ích trong những trường hợp như:

  • Làm mới các biến môi trường trong shell session hiện tại
  • Thực thi một đoạn shell script trong môi trường shell session hiện tại
  • Để import một hàm shell vào script của bạn
  • Đọc biến từ shell script

Cú pháp sử dụng lệnh source

Cú pháp được tích hợp sẵn trong shell command rất human-readable. Đối số đầu tiên khi sử dụng lệnh shell chính là file truyền vào và nếu các đối số sau đó được cung cấp – nó sẽ đóng vai trò như tham số đầu vào cho file script.

source FILENAME [ARGUMENTS]

Dấu chấm (.) cũng có thể được sử dụng để thay thế cho lệnh source

. FILENAME [ARGUMENTS]

Hướng dẫn sử dụng lệnh source

Dưới đây mình sẽ giải thích bằng một số ví dụ cụ thể về cách sử dụng lệnh source

1. Làm mới môi trường shell hiện tại

Khi sử dụng linux, một user có thể định nghĩa alias trong môi trường shell hiện tại. Để định nghĩa alias ngắn gọn thay vì sử dụng lệnh “ls -l” dài dòng để kiểm tra thông tin chi tiết file và folder trong folder bạn đang đứng:

alias ll = 'ls -l'

Để sử dụng alias vừa khai báo, gõ vào terminal:

ll

Để làm mới môi trường shell hiện tại, gõ vào lệnh sau:

source ~/.bashrc

Nghĩa là khi làm mới môi trường shell hiện tại, thì alias “ll” bạn khai báo bên trên sẽ không sử dụng được nữa.

2. Thực thi shell script trong môi trường shell hiện tại

Shell script không thể nào biết được các biến mà bạn định nghĩa trong môi trường shell hiện tại. Lệnh source có thể được sử dụng để thực thi shell script trong shell session hiện tại.

Để định nghĩa một biến tạm thời trong môi trường shell hiện tại:

WEBSITE = example.com

Tạo một đoạn shell script:

#!/bin/bash
echo $WEBSITE

Lưu file ở trên lại với tên script.sh và chmod để thực thi file shell script này sau khi đã thực hiện 2 bước trên:

source ./script.sh

Kết quả hiển thị sau khi sử dụng lệnh source sẽ là:

example.com

3. Import một hàm shell

Định nghĩa một đoạn shell script:

!#/bin/bash
foo() {
 echo  "test"
 }

Lưu file lại với tên script.sh

Để improt hàm foo() từ đoạn script trên vào phiên shell hiện tại, gõ lệnh:

source script.sh

Để sử dụng hàm shell đã khai báo trên, gõ vào:

foo

Khi đó, kết quả output sau khi gõ lệnh trên sẽ là:

test

4. Đọc biến từ shell script

Để tạo một shell script chứa nhiều biến khác nhau, tạo file:

#!/bin/bash
a=1
b=2
c=3

Để đọc các biến từ shell script trên từ một đoạn shell khác, nội dung đoạn script sẽ là:

#!/bin/bash
source abovescript.sh
echo $a, $b, $c

Nội dung đoạn output sau khi thực thi đoạn script trên sẽ là:

1, 2, 3

5. Đọc và thực thi command

Lệnh shell cũng có thể đọc và thực thi các commands từ một file. Giả sử bạn có một file text chứa các command như sau:

pwd
date

Khi sử dụng lệnh source để đọc và thực thi command từ file dạng txt dạng như sau:

$ source example.txt
/home/vsudo
Sat May 15 09:38:12 +07 2021

6. Truyền tham số vào hàm shell

Giờ mình sẽ giải thích cách để truyền các tham số vào hàm shell thông qua lệnh source

File function.sh

!/usr /bin/bash
 var1=$1
 var2=$2

File execute.sh

!/usr/bin/bash
 source functions.sh 10 AA
 echo “var1 = $var1”
 echo “var2 = $var2”

Khi thực thi file excute.sh kết quả sẽ như sau:

var1 = 10
var2 = AA

Kết luận

Lệnh source thường được sử dụng để thực thi các shell script trong phiên shell hiện tại, trong khi đó lệnh exec được sử dụng để chạy các lệnh trong một shell mới. Thông qua bài viết này, bạn đã biết thêm một số ví dụ thực tế cụ thể khi sử dụng lệnh source rồi đấy.

5/5 (2 Reviews)