Một biến là một chuỗi ký tự để từ đó chúng ta gán một giá trị. Giá trị được gán có thể là một số, văn bản, tên file, thiết bị hoặc bất kỳ kiểu nào khác của dữ liệu.
Một biến là không gì khác ngoài một con trỏ trỏ tới dữ liệu thực. Shell cho phép bạn tạo, gán, và xóa các biến.
Tên của một biến có thể chỉ chứa các ký tự (a tới z hoặc từ A tới Z), các số (từ 0 tới 9), hoặc ký hiệu gạch dưới ( _).
Theo quy ước, các biến Unix shell sẽ có tên của chúng trong chữ in hoa.
Ví dụ dưới đây về một tên biến hợp lệ.
_ALI
TOKEN_A
VAR_1
VAR_2
Sau đây là ví dụ về các tên biến không hợp lệ:
2_VAR
-VARIABLE
VAR1-VAR2
VAR_A!
Lý do là bạn không thể sử dụng các ký tự khác như !, *, hoặc - , bởi vì các ký tự này có ý nghĩa đặc biệt đối với shell.
Các biến được định nghĩa như sau:
variable_name=variable_value
Ví dụ:
NAME="Zara Ali"
Ví dụ trên định nghĩa biến Name và gán giá trị Zara Ali cho nó. Các biến theo kiểu này được gọi là các biến vô hướng (scala). Một biến vô hướng chỉ có thể giữ một giá trị tại một thời điểm.
Shell cho phép bạn giữ 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ị được giữ trong một biến, đặt trước tên biến đó với ký hiệu ( $):
Ví dụ, script sau sẽ truy cập vào giá trị của biến NAME đã được định nghĩa và sẽ in nó trên STDOUT:
#!/bin/sh
NAME="Zara Ali"
echo $NAME
Nó sẽ tạo ra kết quả sau:
Zara Ali
Shell cung cấp một cách để đánh dấu các biến như read-only bằng cách sử dụng lệnh readonly. Sau khi một biến được đánh dấu read-only, giá trị của nó không thể thay đổi.
Ví dụ, script sau sẽ lỗi trong khi cố gắng thay đổi giá trị của biến NAME.
#!/bin/sh
NAME="Zara Ali"
readonly NAME
NAME="Qadiri"
Nó sẽ tạo kết quả sau:
/bin/sh: NAME: This variable is read only.
Xóa một biến nói cho shell để gỡ bỏ biến đó từ danh sách các biến mà nó theo dõi. Một khi bạn xóa một biến, bạn sẽ không thể truy cập vào giá trị lưu giữ trong biến đó.
Dưới đây là cú pháp để xóa một biến được định nghĩa bằng cách sử dụng lệnh unset:
unset variable_name
Lệnh trên sẽ xóa giá trị của một biến được định nghĩa. Dưới đây là một ví dụ đơn giản:
#!/bin/sh
NAME="Zara Ali"
unset NAME
echo $NAME
Lệnh trên sẽ không in bất cứ thứ gì. Bạn không thể sử dụng lệnh unset để xóa các biến mà được đánh dấu read-only.
Khi một Shell đang chạy, có 3 kiểu biến tồn tại:
Unpublished comment
Viết câu trả lời