Hai bài báo cuối cùng về BASH Shell, nơi chúng tôi thảo luận chi tiết về các biến đã được độc giả của chúng tôi đánh giá cao. Chúng tôi với tư cách là Tecmint-Team rất quan tâm đến việc cung cấp cho bạn các chủ đề mới nhất, cập nhật và có liên quan được đề cập chi tiết. Hơn nữa, chúng tôi luôn cố gắng đề cập đến các quan điểm chính của các chủ đề tương ứng.
Đây là bài viết cuối cùng về Biến Linux, nơi chúng ta sẽ xem sự thay thế biến và các biến được định nghĩa trong Shell trước khi kết thúc chủ đề này.
Bash thực hiện thay thế biến trước khi lệnh thực sự được thực thi. Linux Bash Shell tìm kiếm tất cả các dấu ‘$’ trước khi thực hiện lệnh và thay thế nó bằng giá trị của biến. Quá trình thay thế biến Bash chỉ được thực hiện một lần. Điều gì sẽ xảy ra nếu chúng ta có các biến lồng nhau?
Lưu ý :Theo ý chúng tôi là biến lồng nhau, biến được khai báo bên trong biến. Hãy xem trường hợp trên trong ví dụ bên dưới.
Khai báo một biến chỉ đọc và có thể thực thi như bên dưới.
[email protected]:~$ declare -rx Linux_best_website="www.tecmint.com"
Kiểm tra giá trị của biến được lưu trữ.
[email protected]:~$ printf "%s" "$Linux_best_website" www.tecmint.com
Bây giờ, hãy khai báo một biến khác là Chỉ đọc và Có thể thực thi.
[email protected]:~$ declare -rx Linux_website="Linux_best_website"
Bây giờ tình hình là, chúng tôi đã xác định hai biến.
‘Linux_best_website’, giá trị là “www.tecmint.com”
và ‘Linux_website’, giá trị là “Linux_best_website”
Kết quả sẽ là gì nếu chúng ta chạy lệnh một dòng dưới đây?
[email protected]:~$ printf "%s" "$Linux_website"
Trước tiên, nó sẽ thay thế biến ‘ $ Linux_website ‘, Với giá trị“ Linux_best_website ”Và sau đó là“ $ Linux_best_website ”Lại là một biến có giá trị là“ www.tecmint.com ”. Vì vậy, kết quả cuối cùng của việc chạy lệnh dưới đây sẽ là.
[email protected]:~$ printf "%s" "$Linux_website" www.tecmint.com
Nhưng thật không may, đây không phải là tình huống, đầu ra mà chúng tôi nhận được là Linux_best_website .
Lý do? Chuẩn rồi! Bash chỉ thay thế giá trị của biến một lần. Điều gì về các tập lệnh và chương trình phức tạp, nơi chúng ta cần thay thế các biến thường xuyên cũng như cần thay thế biến nhiều lần?
Đây là lệnh ‘ eval ‘Thực hiện công việc bổ sung thay thế biến nhiều lần trong một tập lệnh. Đây là một ví dụ để làm cho toàn bộ hoạt động rõ ràng như thủy tinh.
Khai báo một biến x , giá trị của nó là 10 .
[email protected]:~/Desktop$ declare x=10
Kiểm tra giá trị của biến x , chúng tôi vừa xác định.
[email protected]:~/Desktop$ echo $yx x10
Khai báo một biến y , giá trị của nó là x .
[email protected]:~/Desktop$ declare y=x
Kiểm tra giá trị của biến y , chúng tôi vừa xác định.
[email protected]:~/Desktop$ echo $y x
Đây là vấn đề của BASH thay thế biến một lần, không thực hiện thêm một vòng thay thế biến. Chúng tôi đang sử dụng ‘ eval Lệnh ‘để sửa lỗi này.
[email protected]:~/Desktop$ eval y=$x
Bây giờ hãy kiểm tra Giá trị của biến ‘ y ‘.
[email protected]:~/Desktop$ echo $y 10
Tiếng hoan hô! Sự cố đã được khắc phục và ‘ eval ‘Lệnh đã thắng cuộc đua :)
Chưa kể, ‘ eval 'Command rất hữu ích trong các chương trình script lớn và là một công cụ rất tiện dụng.
Phần cuối cùng nhưng không kém phần quan trọng nhất của bài đăng này là các biến được xác định trước BASH. Không! Đừng hoảng sợ khi nhìn thấy danh sách này. Bạn không bao giờ cần phải nhớ toàn bộ danh sách trước khi bắt đầu viết script, ngoại trừ một số. Là một phần của quá trình học tập, chúng tôi đang trình bày Danh sách biến xác định trước BASH.
Không. | BIẾN ĐỔI TIỀN MẶT | KẾT QUẢ |
1 | auto_resume | Hoàn thành lệnh xử lý cho các công việc đã dừng. |
2 | TIỀN | PATH của shell. |
3 | BASH_ENV | Hiển thị tên của tệp hồ sơ |
4 | BASH_VERSION | Hiển thị phiên bản của Bash |
5 | BASH_VERSINFO | Hiển thị thông tin chi tiết về phiên bản. |
6 | BASH_VERSINFO [0] | Số phiên bản chính (bản phát hành). |
7 | BASH_VERSINFO [1] | Số phiên bản nhỏ (phiên bản). |
8 | BASH_VERSINFO [2] | Cấp bản vá. |
9 | BASH_VERSINFO [3] | Phiên bản xây dựng. |
10 | BASH_VERSINFO [4] | Trạng thái phát hành (ví dụ:beta1). |
11 | BASH_VERSINFO [5] | Giá trị của MACHTYPE. |
12 | CDPATH | Danh sách các thư mục được phân tách bằng dấu hai chấm. |
13 | CỘT | Số ký tự trên mỗi dòng trên đầu ra chuẩn. |
14 | EUID | ID người dùng của người dùng hiện tại. |
15 | FCEDIT | Trình soạn thảo văn bản mặc định cho lệnh fc. |
16 | FUNCNAME | Tên của niềm vui |
17 | NHÓM | Nhóm mà người dùng là Thành viên. |
18 | LỊCH SỬ | Tệp chứa lịch sử lệnh. |
19 | TRANG CHỦ | Tên thư mục chính của bạn. |
20 | LINES | Số dòng ngang trên Đầu ra Chuẩn. |
21 | Tên tệp để kiểm tra thư đến | |
22 | OSTYPE | Tên của hệ điều hành. |
23 | OLDPWD | Thư mục làm việc trước đó |
24 | NKT | Thư mục làm việc hiện tại |
25 | NGẪU NHIÊN | In một số ngẫu nhiên |
26 | VỎ | Trình bao được ưu tiên sử dụng |
27 | TIMEFORMAT | Định dạng cho lệnh thời gian. |
28 | UID | ID của người dùng hiện tại |
Có một danh sách khổng lồ về Biến BASH được xác định trước. Chúng tôi đã cố gắng đưa ra một danh sách những thứ được sử dụng thường xuyên nhất.
Đó là tất cả cho bây giờ. Tôi sẽ ở đây một lần nữa với một bài viết thú vị khác. Cho đến khi tiếp tục theo dõi và kết nối với TecMint . Đừng quên cung cấp cho chúng tôi những phản hồi có giá trị của bạn trong phần bình luận bên dưới.