http://blog.51cto.com/lovelace/1211353

bash中如何实现条件判断?
条件测试类型:
    整数测试
    字符测试
    文件测试

一、条件测试的表达式:
    [ expression ]  括号两端必须要有空格
    [[ expression ]] 括号两端必须要有空格
    test expression
    组合测试条件:
     -a: and
     -o: or
      !: 非

二、整数比较:
    -eq 测试两个整数是否相等
    -ne 测试两个整数是否不等
    -gt 测试一个数是否大于另一个数
    -lt 测试一个数是否小于另一个数
    -ge 大于或等于
    -le 小于或等于

命令间的逻辑关系
    逻辑与:&&
        第一个条件为假 第二个条件不用在判断,最总结果已经有
        第一个条件为真,第二个条件必须得判断
    逻辑或:||

三、字符串比较
    字符串比较:
       ==   等于  两边要有空格
       !=    不等
        >    大于
       <     小于

四、文件测试

-z string 测试指定字符是否为空,空着真,非空为假
     -n string 测试指定字符串是否为不空,空为假 非空为真
    -e FILE 测试文件是否存在
    -f file 测试文件是否为普通文件
    -d file 测试指定路径是否为目录
    -r file 测试文件对当前用户是否可读
    -w file 测试文件对当前用户是否可写
    -x file 测试文件对当前用户是都可执行
    -z  是否为空  为空则为真
    -a  是否不空

五、if语法

if 判断条件 0为真 其他都为假

单分支if语句
if 判断条件;then
statement1
statement2
.......
fi

双分支的if语句:
if 判断条件;then
statement1
statement2
.....
else
statement3
statement4
fi

Note:
if语句进行判断是否为空
[ "$name” = "" ]
等同于
[ ! "$name" ]
[ -z "$name" ]

Note:
使用if语句的时候进行判断如果是进行数值类的 ,建议使用 let(())进行判断
对于字符串等使用test[ ] or [[ ]] 进行判断
(())中变量是可以不使用$来引用的

example:表述数字范围的时候 可以使用if可以是使用case
if [ $x -gt 90 -o $x -lt 100 ]
case $x in
100)
9[0-9])

if [ "X$name" != "x" ]
这个语句的意思是如果$name为空,那么X=X成立折执行下面的结果;

写脚本的时候很多时候需要用到回传命令,$?如果上一个命令执行成功,回传值为0,否则为1~255之间的任何一个
    0为真
    非0为假

条件测试的写法:

1、  执行一个命令的结果
                   if grep -q "rm" fs.sh;then

2、传回一个命令执行结果的相反值
                   if !grep -q "rm" fs.sh;then

3、使用复合命令((算式))
                   if ((a>b));then

4、使用bash关键字 [[判断式]]
                   if [[ str > xyz ]];then

5、使用内置命令:test 判断式
                   if test "str" \> "xyz";then

6、使用内置命令:[判断式]  类似test
                  if [ "str" \> "xyz" ];then

7、使用-a -o进行逻辑组合
                  [ -r filename -a -x filename ]

8、命令&&命令
                  if grep -q "rm" fn.sh && [ $a -lt 100 ];then

9、命令||命令
                 if grep -q "rm" fn.sh || [ $a -lt 100 ];then

示例脚本(

写一段脚本,输入一个测验成绩,根据下面的标准,输出他的评分

成绩(A-F)。

A: 90–100

B: 80–89

C: 70–79

D: 60–69

F: <60

)

#/bin/bash
#Verson:0.1
#Auther:lovelace
#Pragram:This pragram is calculation your grade
#import an argument
read -p "Please input your grade:" x
declare -i x
#jugemet $x value is none or not
if [ "$x" == "" ];then
echo "You don't input your grade...."
exit 5
fi
#jugement the gread level
if [[ "$x" -ge "90" && "$x" -le "100" ]];then
echo "Congratulation,Your grade is A."
elif [[ "$x" -ge "80" && "$x" -le "89" ]];then
echo "Good,Your grade is B."
elif [[ "$x" -ge "70" && "$x" -le "79" ]];then
echo "Ok.Your grade is C."
elif [[ "$x" -ge "60" && "$x" -le "69" ]];then
echo "Yeah,Your grade is D."
elif [[ "$x" -lt "60" ]];then
echo "Right,Your grade is F."
else
echo "Unknow argument...."
fi

bash中的case when

linux中有和java中类似的case when条件,一看下面的代码就知道

#!/bin/bash
echo 'Input a number:'
read Num
case $Num in
1) 
echo "You select 1"
;;
2)
echo "You select 2"
;;
3)
echo "You select 3"
;;
4|5)
echo "You select 4or5"
;;
*)
echo "default"
;;
esac
#!/bin/bash

####输入1===输出10

case $1 in
1)
echo "您输入的是1"
;; 10)
echo "您输入的是10"
;; 100)
echo "您输入的是100" ;; *)
echo "您输入不正确哟"
;; esac  

  

1.条件xx)注意单括号

2.一个条件结束了用双的分号

3.最终退出用esac 

bash Shell 中如何实现条件判断之if判断的更多相关文章

  1. linux Shell中常用的条件判断

    linux Shell中常用的条件判断 -b file            若文件存在且是一个块特殊文件,则为真 -c file            若文件存在且是一个字符特殊文件,则为真 -d ...

  2. bash shell中测试命令

    bash shell中测试命令 test命令提供了if-than语句中测试不同条件的途径.如果test命令中列出的条件成立,test命令就会退出并返回退出状态吗0 .这样if-than语句就与其他编程 ...

  3. Bash shell中的位置参数$#,$*,$@,$0,$1,$2...及特殊参数$?,$-等的含义

    http://hi.baidu.com/lolorosa/blog/item/5775a608bd670d33b0351da7.html $# 是传给脚本的参数个数 $@ 是传给脚本的所有参数的列表 ...

  4. Bash Shell中Shift用法分享

    这篇文章主要介绍了Bash Shell中Shift的使用方法,需要的朋友可以参考下 shift可以用来向左移动位置参数.Shell的名字 $0第一个参数 $1第二个参数 $2第n个参数 $n所有参数 ...

  5. Bash Shell中的特殊位置变量及其应用

    Bash Shell中的特殊位置变量及其应用 众所周知bash shell中有许多特殊的位置变量,灵活使用它们可以更好地发挥Shell脚本的功用. 即位置变量:$1,$2,...来表示,用于让脚本在脚 ...

  6. shell编程学习笔记(八):Shell中的if条件判断

    编程语言中都有条件判断,shell编程也不例外,下面我们来看一下shell中应该怎么使用if条件判断 以下蓝色字体部分为Linux命令,红色字体的内容为输出的内容: # cd /opt/scripts ...

  7. linux bash shell中case语句的实例

    本文介绍下,在bash shell编程中,有关case语句的一个例子,学习下case语句的用法,有需要的朋友参考下. 本文转自:http://www.jbxue.com/article/13377.h ...

  8. 【转】Bash Shell中命令行选项/参数处理

    原文网址:http://www.cnblogs.com/FrankTan/archive/2010/03/01/1634516.html 0.引言 写程序的时候经常要处理命令行参数,本文描述在Bash ...

  9. Bash Shell中命令行选项/参数处理

    0.引言 写程序的时候经常要处理命令行参数,本文描述在Bash下的命令行处理方式. 选项与参数: 如下一个命令行: ./test.sh -f config.conf -v --prefix=/home ...

随机推荐

  1. [LeetCode] 301. Remove Invalid Parentheses_Hard tag:BFS

    Remove the minimum number of invalid parentheses in order to make the input string valid. Return all ...

  2. python-计算器实现

    # 开发一个简单的python计算器# 实现加减乘除及括号优先级解析# 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * ...

  3. Quick Look at the Air Jordan 32

    A color with 25 years of history in the Air Jordan line will once again leave its mark on the Air Jo ...

  4. memcached小试牛刀

    memcached安装 [root@localhost ~]# cd /usr/local/src [root@localhost src]#wget http://www.memcached.org ...

  5. zoj3814

    这题说的是给了一个数在longlong范围内 然后求出小于这个数的最大的回文,枚举每位减去1后 , 他后面的位置上全部都置为9,然后在枚举每个前半部分,然后贪心取得这个数的最大值,贪心的时候写错了,错 ...

  6. Oracle 性能调优

    在 oracle 中效率排行, 表连接>exist>not exist>in>no in 并且使用in 查询 会有查询条件数量不能超过1000 的限制: 简单提高效率可以使用 ...

  7. outlook还原初始设置

    找到outlook的安装地址: C:\Program Files\Microsoft Office\Office15 进入命令行界面 WIN+R ->cmd cd C:\Program File ...

  8. 让360双核浏览器默认极速模式,避免采用IE模式无法正常访问html5网页的解决办法

    让360双核浏览器默认极速模式,避免采用IE模式无法正常访问html5网页的解决办法 用Meta标签代码让360双核浏览器默认极速模式不是兼容模式<meta name="rendere ...

  9. Js基础知识7-Es6新增对象Map和set数据结构

    前言 JavaScript中对象的本质是键值对的集合,ES5中的数据结构,主要是用Array和Object,但是键只能是字符串.为了弥补这种缺憾,ES6带来了一种新的数据结构Map. Map也是键值对 ...

  10. 0-5v转0-20ma和0-5v转4-20ma

    0-5v转0-20ma 0-5v转4-20ma