Unix / Linux - Sử dụng các biến Shell

Trong chương này, chúng ta sẽ học cách sử dụng các biến Shell trong Unix. Một biến là một chuỗi ký tự mà chúng ta gán một giá trị. Giá trị được chỉ định có thể là số, văn bản, tên tệp, thiết bị hoặc bất kỳ loại dữ liệu nào khác.

Một biến không hơn gì một con trỏ đến dữ liệu thực tế. Trình bao cho phép bạn tạo, gán và xóa các biến.

Tên biến

Tên của một biến chỉ có thể chứa các chữ cái (a đến z hoặc A đến Z), số (0 đến 9) hoặc ký tự gạch dưới (_).

Theo quy ước, các biến trình bao Unix sẽ có tên của chúng trong UPPERCASE.

Các ví dụ sau đây là các tên biến hợp lệ -

_ALI
TOKEN_A
VAR_1
VAR_2

Sau đây là các ví dụ về tên biến không hợp lệ:

2_VAR
-VARIABLE
VAR1-VAR2
VAR_A!

Lý do bạn không thể sử dụng các ký tự khác như !, *, hoặc là - là các ký tự này có ý nghĩa đặc biệt đối với shell.

Xác định các biến

Các biến được định nghĩa như sau:

variable_name=variable_value

Ví dụ -

NAME="Zara Ali"

Ví dụ trên xác định biến NAME và gán giá trị "Zara Ali" cho nó. Các biến thuộc loại này được gọi làscalar variables. Một biến vô hướng chỉ có thể chứa một giá trị tại một thời điểm.

Shell cho phép bạn lưu trữ bất kỳ giá trị nào bạn muốn trong một biến. Ví dụ -

VAR1="Zara Ali"
VAR2=100

Truy cập các giá trị

Để truy cập giá trị được lưu trữ trong một biến, hãy đặt tiền tố tên của nó bằng ký hiệu đô la ($) -

Ví dụ: tập lệnh sau sẽ truy cập giá trị của biến được xác định NAME và in nó trên STDOUT -

#!/bin/sh

NAME="Zara Ali"
echo $NAME

Tập lệnh trên sẽ tạo ra giá trị sau:

Zara Ali

Biến chỉ đọc

Shell cung cấp một cách để đánh dấu các biến là chỉ đọc bằng cách sử dụng lệnh chỉ đọc. Sau khi một biến được đánh dấu là chỉ đọc, giá trị của nó không thể thay đổi được.

Ví dụ: tập lệnh sau tạo ra lỗi khi cố gắng thay đổi giá trị của NAME -

#!/bin/sh

NAME="Zara Ali"
readonly NAME
NAME="Qadiri"

Tập lệnh trên sẽ tạo ra kết quả sau:

/bin/sh: NAME: This variable is read only.

Bỏ thiết lập các biến

Việc bỏ đặt hoặc xóa một biến sẽ hướng shell xóa biến đó khỏi danh sách các biến mà nó theo dõi. Khi bạn hủy đặt một biến, bạn không thể truy cập giá trị được lưu trữ trong biến.

Sau đây là cú pháp để hủy đặt một biến đã xác định bằng cách sử dụng unset lệnh -

unset variable_name

Lệnh trên bỏ đặt giá trị của một biến đã xác định. Đây là một ví dụ đơn giản minh họa cách hoạt động của lệnh:

#!/bin/sh

NAME="Zara Ali"
unset NAME
echo $NAME

Ví dụ trên không in bất cứ thứ gì. Bạn không thể sử dụng lệnh unset đểunset các biến được đánh dấu readonly.

Các loại biến

Khi một trình bao đang chạy, có ba loại biến chính:

  • Local Variables- Biến cục bộ là một biến có trong phiên bản hiện tại của shell. Nó không có sẵn cho các chương trình được khởi động bởi shell. Chúng được đặt tại dấu nhắc lệnh.

  • Environment Variables- Một biến môi trường có sẵn cho bất kỳ tiến trình con nào của shell. Một số chương trình cần các biến môi trường để hoạt động chính xác. Thông thường, một tập lệnh shell chỉ định nghĩa những biến môi trường cần thiết cho các chương trình mà nó chạy.

  • Shell Variables- Một biến shell là một biến đặc biệt được đặt bởi shell và được shell yêu cầu để hoạt động chính xác. Một số biến trong số này là biến môi trường trong khi những biến khác là biến cục bộ.