Cách sử dụng bash if -z và if -n để kiểm tra chuỗi trong Linux

theanh

Administrator
Nhân viên
Có nhiều toán tử chuỗi khác nhau có sẵn trong ngôn ngữ lập trình bash có thể được sử dụng để kiểm tra chuỗi. Toán tử -z và -n được sử dụng để xác minh xem chuỗi có Null hay không. Trong hướng dẫn này, chúng ta sẽ kiểm tra các toán tử chuỗi này bằng cách sử dụng câu lệnh if trong Centos 8.

Trong hướng dẫn này, bạn sẽ tìm hiểu về các chuỗi kiểm tra sau:
  • If-n khi String là Null.
  • If-n khi String không phải là Null
  • If-z khi Sting là Null
  • If-z khi String không phải là Null
  • If-z khi lấy đầu vào của Người dùng String

Sử dụng toán tử if -n khi String là Null​

Mục đích chính của chúng ta khi sử dụng toán tử if-n ở đây là để chỉ ra rằng chuỗi cụ thể là Null. Thực hiện theo các bước được trích dẫn để thực hiện tác vụ này:

Tạo một tệp mới có tên CheckString.sh. Bạn có thể tạo tệp này trực tiếp trong thư mục gốc của mình hoặc sử dụng lệnh sau trong thiết bị đầu cuối:
Mã:
$ touch CheckString.sh
Bạn có thể thấy tệp CheckString.sh đã được tạo trong thư mục gốc của mình như trong hình ảnh.



Mở tệp CheckString.sh và viết một tập lệnh bash như trong hình ảnh bên dưới. Ở đây, bạn có thể thấy chúng tôi đã khởi tạo một chuỗi có tên StdName theo sau là giá trị Null. Trong câu lệnh if của chúng ta, chúng ta đã sử dụng toán tử kiểm tra chuỗi -n theo sau là chuỗi StdName. Vì chuỗi StdName là null nên toán tử -n sẽ thực thi phần else của tập lệnh.



Bây giờ chúng ta sẽ chạy lệnh được đề cập bên dưới để kiểm tra xem chuỗi có Null hay không.
Mã:
$ bash CheckStrings.sh
Vì chuỗi StdName của chúng ta là Null nên toán tử chuỗi -n đã thực thi phần else. Do đó, đầu ra sẽ là Sorry! You have no name in the terminal như được trình bày trong hình ảnh bên dưới.


Sử dụng if -n khi Chuỗi không Null​

Chúng ta đang sử dụng toán tử if-n ở đây để hiển thị rằng chuỗi được chỉ định trong tệp không phải là Null. Bạn phải thực hiện các bước được đề cập bên dưới để thực hiện hoạt động này:

Không cần tạo tệp hoặc chuỗi mới. Bạn sẽ sử dụng cùng một tệp CheckString.sh cho tác vụ này với một thay đổi nhỏ. Lần này, chuỗi StdName trong tệp của bạn phải có một số giá trị khác null. Vì vậy, bạn phải gán cho chuỗi của mình một giá trị (không phải null) trong khi tất cả các tập lệnh khác vẫn giữ nguyên. Vì vậy, như bạn có thể thấy, chúng tôi đã gán cho chuỗi StdName một giá trị Aqsa Yasin. Vì vậy, lần này, một phần của tập lệnh If sẽ được thực thi bởi toán tử -n.



Bây giờ chúng ta sẽ chạy lệnh được đề cập bên dưới để kiểm tra xem chuỗi có giá trị nào đó hay không.
Mã:
$ bash CheckStrings.sh
Vì chuỗi StdName của chúng ta hiện có giá trị Aqsa Yasin, vì vậy toán tử chuỗi -n đã thực thi phần if. Vì vậy, đầu ra sẽ là Hy! Aqsa Yasin trong terminal như được hiển thị trong hình ảnh được thêm vào.


Sử dụng if -z khi String là Null​

Chúng tôi đang sử dụng toán tử if-z ở đây để hiển thị rằng chuỗi được chỉ định trong tệp là Null. Bạn phải thực hiện các bước được đề cập bên dưới để thực hiện hoạt động này:

Không có gì mới để làm cho nhiệm vụ này. Chỉ cần sử dụng cùng một tệp CheckString.sh cũ với toán tử chuỗi -z. Như chúng ta đã biết, toán tử -z thực thi phần True khi chuỗi là Null. Vì chuỗi StdName có giá trị null nên phần if của tập lệnh sẽ được thực hiện bởi toán tử -z.



Bây giờ chúng ta sẽ chạy lệnh được đề cập bên dưới để kiểm tra xem chuỗi có phải là null không.
Mã:
$ bash CheckStrings.sh
Vì chuỗi StdName của chúng ta hiện không có giá trị nào và toán tử chuỗi -z biết rằng chuỗi là null, vì vậy nó thực thi phần if. Vì vậy, đầu ra sẽ là Sorry You have no name in the terminal như được hiển thị trong hình ảnh được gắn kèm.


Sử dụng if -z khi Chuỗi không phải là Null​

Chúng ta đang sử dụng toán tử if-z ở đây là để hiển thị rằng chuỗi được chỉ định trong tệp không phải là Null. Bằng cách thực hiện các bước này, bạn sẽ có thể thực hiện hoạt động này:

Không cần phải làm bất cứ điều gì mới. Chúng ta sẽ sử dụng cùng một tệp CheckString.sh cũ cho tác vụ này với một thay đổi nhỏ. Lần này, chúng ta sẽ thay toán tử chuỗi -n bằng toán tử chuỗi -z. Ngoài ra, bạn phải hoán đổi phần if và else của tập lệnh với nhau. Như chúng ta đã biết, toán tử -z thực thi phần True khi chuỗi là Null. Vì chuỗi StdName có giá trị Aqsa Yasin không phải là null nên câu lệnh else sẽ được thực thi bởi toán tử -z.



Bây giờ chúng ta sẽ chạy lệnh được đề cập bên dưới để kiểm tra xem chuỗi có phải là null hay không.
Mã:
$ bash CheckStrings.sh
Vì chuỗi StdName của chúng ta hiện có giá trị là Aqsa Yasin và toán tử chuỗi -z biết rằng chuỗi này không phải là null, nên nó thực thi phần else. Vì vậy, đầu ra sẽ là Hy Aqsa Yasin trong thiết bị đầu cuối như được hiển thị trong hình ảnh bên dưới.


Sử dụng if -z while Taking String User Input​

Cuối cùng, chúng ta sử dụng toán tử if-z để kiểm tra đầu vào chuỗi được thêm vào bằng lệnh use khi chạy. Bạn phải thực hiện các bước sau để kiểm tra đầu vào chuỗi của người dùng:

Lần này, bạn phải thay đổi tập lệnh của mình ở một mức độ nào đó trong tệp. Trước hết, chúng ta sử dụng toán tử -z trong câu lệnh if theo sau là biến string. Hệ thống sẽ yêu cầu người dùng thêm một số giá trị chuỗi. Người dùng sẽ thêm một số chuỗi. Trong khi sử dụng câu lệnh read, hệ thống sẽ lưu chuỗi do người dùng viết trong biến string. Như chúng ta đã biết, toán tử -z thực thi phần if của câu lệnh khi chuỗi hợp lệ. Nếu chuỗi do người dùng nhập là null, hệ thống sẽ yêu cầu bạn nhập lại chuỗi. Nếu chuỗi do người dùng nhập không phải là null, hệ thống sẽ hiển thị chuỗi.



Bây giờ chúng ta sẽ chạy lệnh được đề cập bên dưới để kiểm tra chuỗi do người dùng nhập:
Mã:
$ bash CheckStrings.sh
Khi hệ thống yêu cầu người dùng thêm một số chuỗi, người dùng không thêm bất kỳ giá trị nào. Vì vậy, toán tử -z nhận dạng chuỗi là null nên thực thi câu lệnh if. Hệ thống lại nhắc thêm một số giá trị chuỗi cho người dùng. Bây giờ, lần này người dùng đã thêm một giá trị chuỗi hợp lệ New World Order. Do đó, hệ thống hiển thị thông báo The string you enter is: New World


Kết luận​

Trong hướng dẫn này, Bạn đã khám phá cách sử dụng các toán tử chuỗi để kiểm tra giá trị chuỗi là null hoặc không null. Tôi hy vọng bài viết này đã giúp ích cho bạn rất nhiều trong việc nắm vững các toán tử chuỗi -z và -n cũng như các câu lệnh thao tác.
 
Back
Bên trên