Used in shell programming to determine parameters within an if statement

Source: Internet
Author: User
Tags readable syslog

Http://blog.chinaunix.net/uid/21411227/cid-63616-list-1.html

1. Determine the file type

–b Returns True when file exists and is block

  -C Returns True when file exists and is a character

  -D returns True when pathname exists and is a directory

  -E Returns True when a file or directory specified by pathname is present

  -F Returns True when file exists and is regular

  -G returns True when the file or directory specified by pathname is present and the Sgid bit is set

  -H Returns True when file exists and is a symbolic link file, this option is not valid on some old systems

  -K returns True when a file or directory specified by pathname exists and the "sticky" bit is set

  -P Returns True when file exists and is a command pipeline

  -R Returns True when the file or directory specified by pathname is present and readable

  -S returns true when file size is greater than 0

  -U Returns true when the file or directory specified by pathname is present and the suid bit is set

  -W Returns True when the file or directory specified by pathname exists and is executable. A directory must be executable for its content to be accessed.

  -O Returns True when the file or directory specified by pathname is present and is owned by the user specified by the active user ID of the current process.

 2.UNIX Shell To compare characters:

  -eq equals

  -ne Not equal to

  -GT greater than

  -lt less than

  -le less than or equal to

  -ge greater than or equal to

  - z empty string

  = Two characters equal

  ! = two characters unequal

  - n non-empty string

  -------------------------------------------------------------------------

3. file comparison operators

Operator Description Example

  -e filename true if filename exists [-e/var/log/syslog]

  -D filename True if filename is a directory [-d/tmp/mydir]

  -F filename True if filename is a regular file [-f/usr/bin/grep]

  -L filename True if filename is a symbolic link [-l/usr/bin/grep]

  -R filename True if filename is readable [-r/var/log/syslog]

  -W filename if filename is writable, true [-w/var/mytmp.txt]

  -X filename is true if filename is executable [-l/usr/bin/grep]

  Filename1-nt filename2 If filename1 is newer than filename2, it is true

Filename1-ot filename2 If filename1 is older than filename2, it is true  

4. string comparison operators

(Note the use of quotation marks, which is a good way to prevent whitespace from disturbing the code.)

 -Z String True if string length is zero [-Z $myvar]

 -N String if string length is nonzero, true [-N $myvar]

 string1 = string2 true if string1 is the same as string2 [$myvar = one of the three]

 String1! = string2 true if string1 is different from string2 [$myvar! = one, three]

5. Arithmetic comparison operators

  Num1-eq num2 equals [3-eq $mynum]

  Num1-ne num2 Not equal to [3-ne $mynum]

  Num1-lt num2 less than [3-lt $mynum]

  Num1-le num2 less than or equal to [3-le $mynum]

  NUM1-GT num2 greater than [3-GT $mynum]

  Num1-ge num2 greater than or equal to [3-ge $mynum]

6. Script Example:

  #!/bin/bash

  # This script prints a message about your weight if you give it your

  # Weight in kilos and hight in centimeters.

  if [! $# = = 2]; Then

  echo "Usage: $ Weight_in_kilos length_in_centimeters"

  Exit

  Fi

  Weight= "$"

  Height= "$"

  idealweight=$[$height-110]

  If [$weight-le $idealweight]; Then

  echo "You should eat a bit more fat."

  Else

  echo "You should eat a bit more fruit."

  Fi

  # weight.sh 70 150

  You should eat a bit more fruit.

  # weight.sh 70 150 33

  Usage:./weight.sh Weight_in_kilos Length_in_centimeters

The positional parameters are $ #代表了命令行的参数数量, $,..., $N, and $ -a represents the name of the script,

The first parameter represents $ $, the second parameter represents $ $, and so on, the total number of parameters exists in $ #中, the example above shows how to change the script, if the parameter is less than or 2 extra to print out a message.

Used in shell programming to determine parameters within an if statement

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.