Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

Hiểu và Viết 'Các biến Linux' trong Shell Scripting - Phần 10

Ngôn ngữ kịch bản trình bao Linux luôn là một chủ đề nóng và sẽ luôn có trong tương lai. Shell Scripting Language thật kỳ diệu và nó quá dễ dàng để thực hiện một chương trình bằng ngôn ngữ kịch bản như bất kỳ ngôn ngữ nào khác. Tuy nhiên, nó cần có kiến ​​thức chuyên sâu về những gì chúng ta đang làm và kết quả mong đợi.

Hiểu và Viết  Các biến Linux  trong Shell Scripting - Phần 10

Tất cả các bài viết về kịch bản shell mà chúng tôi đã viết cho độc giả của chúng tôi đều được đánh giá cao, bao gồm cả bài cuối cùng là “Một cái nhìn sâu sắc về các biến Linux”. Chúng tôi đang mở rộng bài viết cuối cùng lên một Cấp độ mới.

Thuộc tính biến

Mỗi Biến trong Môi trường Linux có một số tùy chọn nhất định và những tùy chọn đó được gọi là 'thuộc tính'. Các tùy chọn hoặc thuộc tính này có thể được Bật Tắt , khi được yêu cầu tùy theo tình huống bằng cách sử dụng lệnh "khai báo".

Ví dụ về thuộc tính biến đang sử dụng công tắc nói ‘ -i ‘Sẽ bật thuộc tính số nguyên cho biến tương ứng. Ngay cả khi một giá trị không phải số được chuyển để chuyển đổi ‘ -i ‘Nó sẽ không đưa ra thông báo lỗi và xuất ra‘ 0 ‘Như cách giải thích số nguyên. Ở đây nó trở nên rõ ràng hơn từ ví dụ bên dưới.

Khai báo một biến Integer, bill =121

[email protected]:~$ declare -i bill=121

Printf giá trị của hóa đơn thay đổi.

[email protected]:~$ printf "%d\n" "$bill" 

121

Cho giá trị biến là một chuỗi. Hóa đơn khả biến đã được khai báo rồi, không cần khai báo lần thứ hai. Chỉ cần thay đổi giá trị của biến là.

[email protected]:~$ bill=tecmint

Bây giờ, lại printf giá trị của biến hóa đơn.

[email protected]:~$ printf "%d\n" "$bill" 

0

Chú ý ‘ 0 ‘Ở vị trí của thông báo lỗi.

Bây giờ, câu hỏi là, làm thế nào để biết các thuộc tính của các biến đã được khai báo?
[email protected]:~$ declare -p bill 

declare -i bill="121"

Đây, một -p (viết tắt của print) chuyển sang giải cứu.

Một lần nữa, tôi nên làm gì để tắt các thuộc tính của một biến?

Để chuyển Tắt các thuộc tính của một biến mà tất cả những gì chúng ta cần là đặt dấu + ( cộng với ) ký ngay trước công tắc. Ở đây rõ ràng hơn từ ví dụ bên dưới.

Chuyển Tắt thuộc tính số nguyên cho biến trên.

[email protected]:~$ declare +i bill

Kiểm tra giá trị của biến.

[email protected]:~$ printf "%d\n" "$bill" 

bash: printf: bill: invalid number
0

Bây giờ hãy in giá trị của biến bằng chuỗi chuyển đổi.

[email protected]:~$ printf "%s\n" "$bill" 

tecmint

Ở đây trong ví dụ trên, bash không thể đánh giá giá trị không phải là số là lỗi, tuy nhiên printf đang diễn giải, những gì có thể là một số và những gì không thể là.

Biến chỉ đọc

Bạn có thể đã nghe Bộ nhớ Chỉ đọc ( ROM ), nhưng Biến chỉ đọc là gì? Nó có điểm nào giống với ROM không?

Tốt Các biến chỉ đọc như Bộ nhớ chỉ đọc là thứ mà giá trị của nó không thể thay đổi sau khi nó được chỉ định. Do đó, nó được gọi là Read-only. Bạn không thể viết, chỉnh sửa hoặc sửa đổi giá trị mới cho biến đó. Đây là ví dụ minh họa.

Decalre a read only ( -r ) tên biến, giá trị là “Tecmint.com”.

[email protected]:~$ declare -r name="Tecmint.com"

Printf giá trị của biến đã khai báo ở trên.

[email protected]:~$ printf "%s\n" "$name" 

Tecmint.com

Cố gắng thay đổi giá trị của biến.

[email protected]:~$ declare -r name="Avishek" 

bash: declare: name: readonly variable

Như đã thảo luận ở trên, các thuộc tính của Biến chỉ đọc có thể được thay đổi bằng cách sử dụng ‘ + Dấu ‘.

Xuất biến trong Linux

Tất cả các biến shell được khai báo trong shell script đều có sẵn cho đến khi script đang chạy. Bên ngoài script, biến từ script không tồn tại. Quá trình tạo các biến có sẵn bên ngoài script được gọi là xuất biến.

Một biến có thể được xuất ra bên ngoài trình bao bằng cách sử dụng công tắc khai báo -x (export), xác nhận shell những gì bạn muốn xuất. Một công tắc xuất khai báo có thể được sử dụng làm.

[email protected]:~$ declare -x variable=”Constant_Value”

Tất cả các thay đổi được thực hiện đối với biến trong khi tập lệnh đang chạy, sẽ bị mất khi biến được xuất ra bên ngoài tập lệnh. Việc xuất biến là rất quan trọng trong kịch bản shell.

Chúng tôi muốn có một biến ở chế độ chỉ đọc và có sẵn bên ngoài tập lệnh, chúng tôi cần sử dụng switch -r và chuyển đổi -x đồng thời.

[email protected]:~$ declare -rx variable=”Constant_Value”

Biến môi trường

Các biến được chia sẻ giữa chương trình và chương trình thực thi chúng. Các biến môi trường có thể được xuất nhưng không thể gán các thuộc tính cho nó.

Hiểu lý thuyết trên một cách thực tế. Ở đây chúng tôi có hai tập lệnh 0.sh 1.sh .

# 0.sh
#!/bin/bash 
declare -rx name=Tecmint 
bash 0.sh 
exit 0

Và tập lệnh thứ hai là.

# 1.sh
#!/bin/bash 
printf "%s\n" "$name" 
name=Tecmint.com 
printf "%s\n" "$name"
exit 0

Đây là những gì đang diễn ra, một biến (tên) được khai báo là chỉ đọc và xuất và ngay sau khi tập lệnh thứ hai đó được gọi.

Tập lệnh thứ hai chỉ in biến từ tập lệnh đầu tiên được xuất trong printf đầu tiên bản tường trình. Trong câu lệnh printf thứ hai, nó hiển thị giá trị mới được gán cho biến ‘ name ‘.

Không cần phải lo lắng, rằng biến là chỉ đọc, làm thế nào nó có thể được gán lại. Bạn có nhớ rằng “Tất cả các thay đổi được thực hiện đối với biến khi tập lệnh đang chạy sẽ bị mất khi biến được xuất ra bên ngoài tập lệnh.”

Tài liệu tham khảo

Khai báo lệnh cho phép tất cả các công tắc bên dưới cùng với sự kết hợp của chúng.

  1. -a :Khai báo một mảng.
  2. -f :Chức năng và Định nghĩa hiển thị.
  3. -F :Tên chức năng hiển thị.
  4. -r :Khai báo biến dưới dạng chỉ đọc.
  5. -x :Khai báo Biến là Có thể Xuất.
  6. -Tôi :Khai báo biến dưới dạng Số nguyên.

Đó là tất cả cho bây giờ. Trong phần tiếp theo, chúng tôi sẽ thảo luận về các cách thay thế các biến bằng cách sử dụng ‘ eval Lệnh ‘và các biến đã được xác định trong bash trước khi đóng chủ đề này. Hy vọng mọi người sẽ thích hành trình tìm hiểu sâu về kịch bản của bạn. Cho đến khi tiếp tục theo dõi và kết nối với Tecmint.com .