Friday, October 25, 2024

[Bash] Lesson 30 – Kiểm tra biến đã được định nghĩa trong Bash

-

Kiểm tra biến đã được định nghĩa trong Bash


Một biến thường được xem như là một hộp chứa tên và nội dung. Một lệnh đơn giản, ví dụ như “echo Hello $Ten_Bien’ sẽ in ra “Hello…giá trị của biến được xác định”. Bash sẽ không in gì cả nếu hộp không có gì hoặc chưa được tạo. Đó là lý do tại sao quan trọng để đảm bảo biến được định nghĩa đúng hay không khi tạo bất kỳ tập lệnh Bash nào.

Các biến có thể được phân loại thành hai phần:

  • Các biến đã định nghĩa: Các biến được tạo hoặc khởi tạo đúng cách được gọi là các biến đã định nghĩa. Chúng có thể có giá trị bằng không hoặc là một chuỗi rỗng.Các biến chưa định nghĩa: Các biến chưa bao giờ được tạo hoặc khởi tạo được gọi là các biến chưa định nghĩa.
    Để xác nhận xem một biến có được định nghĩa hay không trong Kịch bản Bash, chúng ta có thể sử dụng các tùy chọn -v var hoặc -z $ {var} như là một biểu thức kết hợp với lệnh điều kiện ‘if’.

Cú pháp
Sau đây là cú pháp của biểu thức logic mà có thể được sử dụng để kiểm tra xem biến đã được định nghĩa hay chưa:

[[ -v Variable_Name ]]  
  
[[ -z Variable_Name ]]  

Biểu thức logic trả về giá trị ‘Đúng’ nếu biến đã được thiết lập và ‘Sai’ nếu biến chưa được thiết lập.

Dưới đây là các ví dụ để kiểm tra xem một biến đã được thiết lập hay chưa:

Sử dụng Tùy chọn -v

#!/bin/bash  
#Script to check whether a variable is set or not using -v option  
  
A=100  
#A: variable is set.  
  
if [[ -v A ]];  
then  
echo "Variable having name 'A' is already set."  
else  
echo "Variable having name 'A' is not set."  
fi  
  
#B: variable is not set  
if [[ -v B ]];  
then  
echo "Variable having name 'B' is already set."  
else  
echo "Variable having name 'B' is not set."  
fi  

Kết quả

Ở đây, biến ‘A’ đã được xác định và gán giá trị là 100 và do đó được xem là ‘biến được đặt giá trị’. Đối với biến ‘B’, chúng ta không xác định hoặc gán bất kỳ giá trị nào. Kết quả là biến ‘B’ không được xem là ‘biến được đặt giá trị’.

Sử dụng tùy chọn -z.

#!/bin/bash  
#Script to check whether a variable is set or not using -z option  
  
A=100  
#A: variable is set.  
if [[ -z ${A} ]];  
then  
echo "Variable having name 'A' is not set."  
else  
echo "Variable having name 'A' is already set."  
fi  
  
#B: variable is not set  
if [[ -z ${B} ]];  
then  
echo "Variable having name 'B' is not set."  
else  
echo "Variable having name 'B' is already set."  
fi  

Kết quả

Lưu ý: Có sự khác biệt giữa một biến không được thiết lập và một biến với giá trị null.

Hãy xem ví dụ sau đây để minh họa rằng biến với giá trị null có thể là một biến được thiết lập.

VAR=''  
  
#VAR is set  
  
if [ -z ${VAR+x} ];   
then   
echo "'VAR' is unset";   
else   
echo "'VAR' is set, its content is '$VAR'";   
fi  
  
#Var is not set  
if [ -z ${Var+x} ];   
then   
echo "'Var' is unset";   
else   
echo "'Var' is set, its content is '$Var'";   
fi  

Kết quả

Đây là các phương pháp thường được sử dụng để kiểm tra xem một biến có được thiết lập hay không.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories