`
xxrrss
  • 浏览: 43232 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

shell 中 if condition

阅读更多
est command or [ expr ] is used to see if an expression is true, and if it is true it return zero(0), otherwise returns nonzero for false.
Syntax:
test expression OR [ expression ]

Example:
Following script determine whether given argument number is positive.
$ cat > ispostive
#!/bin/sh
#
# Script to see whether argument is positive
#
if test $1 -gt 0
then
echo "$1 number is positive"
fi

Run it as follows
$ chmod 755 ispostive

$ ispostive 5
5 number is positive

$ispostive -45
Nothing is printed

$ispostive
./ispostive: test: -gt: unary operator expected

Detailed explanation
The line, if test $1 -gt 0 , test to see if first command line argument($1) is greater than 0. If it is true(0) then test will return 0 and output will printed as 5 number is positive but for -45 argument there is no output because our condition is not true(0) (no -45 is not greater than 0) hence echo statement is skipped. And for last statement we have not supplied any argument hence error ./ispostive: test: -gt: unary operator expected, is generated by shell , to avoid such error we can test whether command line argument is supplied or not.

test or [ expr ] works with
1.Integer ( Number without decimal point)
2.File types
3.Character strings

For Mathematics, use following operator in Shell Script

Mathematical Operator in  Shell Script Meaning Normal Arithmetical/ Mathematical Statements But in Shell
For test statement with if command For [ expr ] statement with if command
-eq is equal to 5 == 6 if test 5 -eq 6 if [ 5 -eq 6 ]
-ne is not equal to 5 != 6 if test 5 -ne 6 if [ 5 -ne 6 ]
-lt is less than 5 < 6 if test 5 -lt 6 if [ 5 -lt 6 ]
-le is less than or equal to 5 <= 6 if test 5 -le 6 if [ 5 -le 6 ]
-gt is greater than 5 > 6 if test 5 -gt 6 if [ 5 -gt 6 ]
-ge is greater than or equal to 5 >= 6 if test 5 -ge 6 if [ 5 -ge 6 ]

NOTE: == is equal, != is not equal.

For string Comparisons use
Operator Meaning
string1 = string2 string1 is equal to string2
string1 != string2 string1 is NOT equal to string2
string1 string1 is NOT NULL or not defined
-n string1 string1 is NOT NULL and does exist
-z string1 string1 is NULL and does exist

Shell also test for file and directory types
Test Meaning
-s file   Non empty file
-f file   Is File exist or normal file and not a directory
-d dir    Is Directory exist and not a file
-w file  Is writeable file
-r file   Is read-only file
-x file   Is file is executable

Logical Operators

Logical operators are used to combine two or more condition at a time
Operator           Meaning
! expression Logical NOT
expression1  -a  expression2 Logical AND
expression1  -o  expression2 Logical OR



URL:http://www.freeos.com/guides/lsst/ch03sec02.html
分享到:
评论

相关推荐

    Linux下shell脚本中if语句使用的注意事项

    Linux下shell脚本中if语句使用的注意事项 在 Linux 中,shell 脚本中的 if 语句是非常重要的控制结构之一。正确地使用 if 语句可以使得我们的脚本更加灵活和强大。但是,如果不注意一些细节,if 语句可能会出错或不...

    man文件(busubox+mksh+linux_shell编程if中参数)

    `busubox`和`mksh`是与Linux Shell编程相关的工具,而`if`语句是Shell脚本中常用的条件控制结构。这篇内容将深入探讨这些主题。 首先,让我们了解`man`文件。`man`是“manual”的缩写,它提供了一个方便的接口,...

    Shell脚本if else语句小结

    代码如下: &lt;?...if (isset($_GET[“q”])) { ...if condition then  command1  command2  …  commandN fi 当然,也可以写成一行(适用于终端命令提示符),像这样: 代码如下: if test $[2*3] -eq $[1+5];

    shell浅谈之二 运算符和if条件判断

    在Shell脚本编程中,运算符和if条件判断是核心组成部分,它们允许脚本根据不同的条件执行相应的操作。本文将详细探讨这些概念。 首先,我们要理解`if`条件判断是控制流程的重要工具,它允许程序根据指定的条件来...

    大括号在shell中的使用

    if [ condition ]; then echo "条件成立" { command1 command2 } else echo "条件不成立" fi ``` 在这个例子中,大括号内的命令将一起作为一个组执行,确保它们在同一作用域内。 6. **命令别名**:在`....

    shell基础入门教程

    Shell编程是Linux和Unix操作系统中的一种命令解释器,它允许用户通过命令行与系统交互,执行各种任务。本教程将引导初学者逐步了解并掌握Shell编程的基础知识。 ### 1. Shell简介 Shell是操作系统提供给用户的界面...

    【shell脚本】shell脚本之条件判断if、for与while循环(shell脚本基础学习二)

    本文将深入探讨Shell脚本中的条件判断(if)、for循环和while循环,这些都是编写有效脚本的基础。 ### 条件判断 `if` `if` 语句在Shell脚本中用于根据特定条件执行不同的命令。以下是一些基本形式: 1. **单分支 ...

    Linux shell脚本编程if语句的使用方法(条件判断)

    下面将详细介绍Linux shell脚本中if语句的使用方法。 1. **if语句的基本格式** if语句的基本结构如下: ```bash if condition then command1 command2 ... else command3 command4 fi ``` 这里的`...

    基于shell的if和else详解

    在Shell脚本编程中,`if`和`else`语句用于条件判断,它们的语法与C语言等高级语言类似但存在一些关键的差异。下面将详细介绍这些语句的基本语法、对比方法、正则表达式使用、`[`与`[[`的区别以及文件判断等知识点。 ...

    常用shell编程命令

    shell编程是 Linux 和 Unix 操作系统中一种强大的编程语言,可以用来编写脚本以自动执行各种任务。下面是 shell 编程命令的详解。 一、基本语法 * `#!/bin/bash`:这是一个约定的标记,告诉系统这个脚本需要什么...

    Shell脚本-从入门到精通.ppt

    shell脚本是Linux操作系统中的一种编程语言,用于自动执行一系列命令。shell脚本文件是一个纯文本文件,可以使用任何文本编辑器编写,通常以.sh作为后缀名。 一、shell脚本的基本结构 shell脚本的基本结构包括: ...

    shell脚本相关资料

    - `if`: 条件判断,如`if [ condition ]; then commands; fi`。 - `for`: 循环结构,如`for var in list; do commands; done`。 - `while`: 基于条件的循环,如`while condition; do commands; done`。 - `case`...

    cshell 教程 非常好用哦

    if [ condition ] then command1 else command2 fi ``` - **循环语句**:`while`、`until`用于循环,`for`用于遍历,如: ```bash for i in {1..10} do echo $i done ``` ### 5. CShell函数 CShell支持自定义...

    Shell脚本IF条件判断和判断条件总结

    Shell脚本中的IF条件判断是实现程序流程控制的关键部分,它允许我们根据不同的条件执行不同的命令或操作。本文将深入探讨Shell脚本的IF条件判断语法以及常用的判断条件。 首先,IF条件判断的基本语法如下: ```...

    shell脚本练习.rarshell脚本练习.rar

    例如,`if [ condition ]`用来检查某个条件是否为真,`for var in list`则用于遍历一个列表。学会这些,你可以根据不同的情况执行不同的命令。 函数在Shell脚本中也很重要,它们可以封装可重用的代码段。定义函数的...

    Linux shell中文文档

    - **if语句**:用于条件判断,基本结构为`if condition; then commands; fi`。 - **case语句**:多选择分支,如`case $VAR in pattern) commands;; esac`。 - **比较运算符**:包括`=`, `!=`, `-eq`, `-ne`, `-lt...

    linux中if参数详解

    本文将深入解析Linux shell脚本中的`if`参数及其用法。 一、基本语法 在bash shell中,`if`语句的基本语法如下: ```bash if condition then # 如果条件为真,执行此处的命令 elif condition then # 如果第一个...

    shell编程学习资料

    7. **awk条件表达式**:`{action if condition}`结构,当条件满足时执行action。 通过掌握Shell编程,你可以编写出高效的自动化脚本,处理日常的系统管理任务,而sed和awk则是强大的文本处理工具,能帮助你在处理...

Global site tag (gtag.js) - Google Analytics