Bash Commands – Comparison Operators

來源:互聯網
上載者:User

A binary comparison operator compares two variables or quantities.
Note that integer and string comparison
use a different set of operators.

1. integer comparison
-eq             is equal to

if [ "$a" -eq "$b" ]

-ne             is not equal to

if [ "$a" -ne "$b" ]

-gt              is greater than

if [ "$a" -gt "$b" ]       

-ge             is greater than or equal to

if [ "$a" -ge "$b" ]

-lt                is less than

if [ "$a" -lt "$b" ]

-le              is less than or equal to

if [ "$a" -le "$b" ]

<                is less than (within double parentheses)

(("$a" < "$b"))


<=              is less than or equal to (within double parentheses)

(("$a" <= "$b"))


>                 is greater than (within double parentheses)

(("$a" > "$b"))


>=                is greater than or equal to (within double parentheses)

(("$a" >= "$b"))

2. string comparison

=                     is equal to
if [ "$a" = "$b" ]
Note the whitespace framing the =.

if [ "$a"="$b" ] is not equivalent to the above.

==                     is equal to
if [ "$a" == "$b" ]
This is a synonym for =.
The == comparison operator behaves differently within a double-brackets test than
within single brackets.
[[ $a == z* ]]
# True if $a starts with an "z" (pattern matching).
[[ $a == "z*" ]] # True if $a is equal to z* (literal matching).
[ $a == z* ]
# File globbing and word splitting take place.
[ "$a" == "z*" ] # True if $a is equal to z* (literal matching).

!=                        is not equal to

if [ "$a" != "$b" ]

This operator uses pattern matching within a [[ ... ]] construct.

<                        is less than, in ASCII alphabetical order
if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]

Note that the "<" needs to be escaped within a [ ] construct.

>                       is greater than, in ASCII alphabetical order
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
Note that the ">" needs to be escaped within a [ ] construct.

-z                      string is null, that is, has zero length
String=''
# Zero-length ("null") string variable.
if [ -z "$String" ]
then
echo "\$String is null."
else
echo "\$String is NOT null."
fi

# $String is null.

-n                        string is not null.

The -n test requires that the string be quoted within the test brackets. Using an
unquoted string with ! -z, or even just the unquoted string alone within test brackets
normally works, however, this is an unsafe practice. Always quote a
tested string. [37]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.