Bash shell--if condition judgment

Source: Internet
Author: User
Tags locale sorts

If statement format:

If condition then     statements [elif condition then     statements ...] [Else     statements] fi

The syntax for the most streamlined if command is:if TEST-COMMANDS; then CONSEQUENT-COMMANDS; fi

The IF condition judgment statement can be nested to achieve the detection of multiple conditions. The keyword "fi" denotes the end of the inner if statement, and all if statements must end with the keyword "fi".

1) string judgment

STR1 = str2 When two strings have the same content, length is true
Str1! = str2 True when string str1 and str2 are not equal
-N str1 True when the length of the string is greater than 0 (string non-null)
-Z str1 True when the string length is 0 (empty string)
STR1 is True when string str1 is not empty

2) Judgment of numbers

Int1-eq int2 Two numbers equal to True
Int1-ne Int2 Two number is true
INT1-GT Int2 int1 greater than Int2 is true
Int1-ge Int2 int1 greater than or equal to Int2 true
Int1-lt Int2 int1 Less than Int2 is true
Int1-le Int2 int1 less than or equal to Int2 true

3) file-related if judgment condition statement

[-A file] is true if file exists.
[-B file] True if file exists and is a block special file.
[-C file] True if file exists and is a word special.
[-D file] True if file exists and is a directory.
[-E File] True if file exists.
[-F file] True if file exists and is a normal file.
[-G file] True if file exists and Sgid has been set. [-H file] True if file exists and is a symbolic connection.
[-K file] True if file exists and the sticky bit has been set.
[-P file] If file exists and is a name pipe (f if O) is true.
[-R File] True if file exists and is readable.
[-S file] True if file exists and the size is not 0.
[-T FD] true if the file descriptor FD is open and points to a terminal.
[-u file] True if file exists and suid (set user ID) is set.
[-W file] True if file exists and is writable.
[-X file] True if file exists and is executable.
[-o file] True if file exists and is a valid user ID.
[-G file] True if file exists and is a valid user group.
[-L file] True if file exists and is a symbolic connection.
[-N file] If file exists and has been mod if IED since it is last read is true.
[-S file] True if file exists and is a socket.
[File1-nt FILE2] If FILE1 have been changed more recently than FILE2, or if FILE1 exists and FILE2 does not is true.
[File1-ot FILE2] If FILE1 is older than FILE2, or FILE2 exists and FILE1 does not exist, it is true.
[File1-ef FILE2] True if FILE1 and FILE2 point to the same device and node number.
[-O Optionname] true if the shell option "Optionname" is turned on.
[-Z STRING] "STRING" is true if the length is zero.
[-N STRING] or [string] "string" is true if the length is not 0 non-zero.
[STRING1 = = STRING2] If 2 strings are the same. "=" May is used instead of "= =" for strict POSIX compliance is true.
[STRING1! = STRING2] True if the strings are not equal.
[STRING1 < STRING2] if "STRING1" sorts before "STRING2" lexicographically in the current locale is true.
[STRING1 > STRING2] If the ' STRING1 ' sorts after ' STRING2 ' lexicographically in the ' current locale ' is true.
[ARG1 OP ARG2] "OP" is one of-eq,-ne,-lt,-le,-gt Or-ge. These arithmetic binary operators return true if "ARG1" is equal to, not equal to, less than, less than or equal to, great Er than, or greater than or equal to "ARG2", respectively. "ARG1" and "ARG2" are integers.

4) Complex logic judgment
-A and
-O or
! Non -

5) Example

For example, the new script Test.sh,#!/bin/bashif grep-q root # parameter provides a file that, if it contains a root string, returns file contains at last on occurence of root# where-Q is used to block The output grep for the echo is     then echo "$ contains at last on occurence of root" Else    echo "$ does not contain" Fiexit 0 and Chmo D 777 test.sh, execute:./TEST.H/ETC/PASSWD, return file contains at last on occurence of root

Bash shell--if condition judgment

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

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.