Shell if detailed

Source: Internet
Author: User
Tags readable syslog

Used in shell programming to determine parameters within an if statement


–b return True when file exists and is a block file


-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 when file size is larger than 0 o'clock returns true


-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.



UNIX Shell comparison character notation:


-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


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


A more detailed description:


Operator Description Example


File comparison Operators


-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, then true [/tmp/install/etc/services-nt/etc/services]


Filename1-ot filename2 If filename1 is older than filename2, then true [/boot/bzimage-ot Arch/i386/boot/bzimage]


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]


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]


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.


Execute, and view the situation.


# bash-x tijian.sh 60 170


+ weight=60


+ height=170


+ idealweight=60


+ ' [' 60-le 60 '] '


+ echo ' should eat a bit more fat. '


You should eat a bit more fat.


Where-X is used to check the execution of the script.


Shell if detailed

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.