<Trước | Nội dung | Tiếp theo>
(()) - Được thiết kế cho số nguyên
Ngoài các [[]] lệnh ghép, bash cũng cung cấp (()) lệnh com- pound, rất hữu ích để thao tác trên số nguyên. Nó hỗ trợ một tập hợp đầy đủ các đánh giá tỉ mỉ, một chủ đề mà chúng tôi sẽ đề cập đầy đủ trong Chương 34.
(()) được sử dụng để biểu diễn kiểm tra sự thật số học. Phép thử chân trị số học cho kết quả là true nếu kết quả của phép tính số học khác XNUMX.
[tôi @ linuxbox ~] $ nếu ((1)); sau đó echo "Nó là sự thật."; fi
Đúng rồi.
[tôi @ linuxbox ~] $ nếu ((0)); sau đó echo "Nó là sự thật."; fi
[tôi @ linuxbox ~] $
[tôi @ linuxbox ~] $ nếu ((1)); sau đó echo "Nó là sự thật."; fi
Đúng rồi.
[tôi @ linuxbox ~] $ nếu ((0)); sau đó echo "Nó là sự thật."; fi
[tôi @ linuxbox ~] $
Sử dụng (()), chúng tôi có thể đơn giản hóa một chút kiểm tra số nguyên2 script như thế này:
#! / bin / bash
# test-integer2a: đánh giá giá trị của một số nguyên.
INT = -5
if [["$ INT" = ~ ^ -? [0-9] + $]]; sau đó nếu ((INT == 0)); sau đó
echo "INT bằng không."
khác
if ((INT <0)); sau đó
echo "INT là âm."
khác
echo "INT là tích cực."
fi
if ((((INT% 2)) == 0)); sau đó
echo "INT là số chẵn."
khác
echo "INT là số lẻ."
fi
#! / bin / bash
# test-integer2a: đánh giá giá trị của một số nguyên.
INT = -5
if [["$ INT" = ~ ^ -? [0-9] + $]]; sau đó nếu ((INT == 0)); sau đó
echo "INT bằng không."
khác
if ((INT <0)); sau đó
echo "INT là âm."
khác
echo "INT là tích cực."
fi
if ((((INT% 2)) == 0)); sau đó
echo "INT là số chẵn."
khác
echo "INT là số lẻ."
fi
echo "INT không phải là số nguyên." > & 2 lối ra 1
fi
echo "INT không phải là số nguyên." > & 2 lối ra 1
fi
Lưu ý rằng chúng tôi sử dụng các dấu hiệu nhỏ hơn và lớn hơn và rằng == được sử dụng để kiểm tra sự tương đương. Đây là một cú pháp trông tự nhiên hơn để làm việc với số nguyên. Cũng lưu ý rằng vì lệnh ghép (()) là một phần của cú pháp shell chứ không phải là lệnh đơn giản, và nó chỉ xử lý với các số nguyên, nó có thể nhận ra các biến theo tên và không yêu cầu thực hiện mở rộng. Chúng ta sẽ thảo luận (()) và phần mở rộng số học liên quan thêm trong Chương 34.
<Trước | Nội dung | Tiếp theo>