码迷,mamicode.com
首页 > 系统相关 > 详细

shell脚本--语法篇

时间:2016-08-11 07:30:12      阅读:282      评论:0      收藏:0      [点我收藏+]

标签:shell脚本--语法篇

条件测试

1、条件测试test或[ ](测试条件是真是假)

例如:字符串比较

#!/bin/bash
read data
test "$data" == "hello" //注意等号两边有空格  或者 [ $data == "hello" ]
echo $? //上一条命令的运行结果,成功为0,失败为1


技术分享


例如:两数比较大小

#!/bin/bash
data=200
[ $data -eq 100 ]
echo $?
[ $data -lt 100 ]
echo $?
[ $data -le 100 ]
echo $?
[ $data -gt 100 ]
echo $?
[ $data -ge 100 ]
echo $?


技术分享


技术分享


技术分享

例如:测试与、非逻辑运算

技术分享

2、if/then/elif/else/fi

#!/bin/bash
read data
if [ "$data" -eq 100 ];then
    echo "100"
elif [ "$data" -eq 200 ];then
    echo "200"
else
    :  //  :为空命令,该命令不做任何事
fi

技术分享


#!/bin/bash
read data
[ "$data" -eq 100 ] && {   //成立执行花括号里面,否则执行括号外

    echo "yes"
    exit 0
}
echo "no"

技术分享


#!/bin/bash
read data
[ "$data" -eq 100 ] || {  //不成立执行花括号里面,否则执行括号外

    echo "yes"
    exit 0
}
echo "no"

技术分享


3、case/esac

#!/bin/bash
read val
case "$val" in
    start | -s | -start | -START )
        echo "start"
        ;;
    ‘stop‘ )
        echo "stop"
        ;;
    ‘*‘ )
        echo "*"
        ;;
esac

技术分享


循环语句

1、for/do/done

写法一:

#!/bin/bash

//for i in {1..100}

for i in {a..z}
do
   echo "$i"
done

运行结果: 打印a...z的字母


写法二:

#!/bin/bash
for(( i=0;i<=100;i++ ))
do
   echo "$i"
done

运行结果: 打印1...100的数字

2、while/do/done  && until/do/done

技术分享


技术分享


求1~100 间的偶数的和

#!/bin/bash
sum=0
ret=0
for i in {1..100}
do
    let ret=i%2
    if [ $ret -eq 0 ];then
        let sum+=i
    fi
done
echo $sum

运行结果:2550

3、shell脚本的调试方法

shell脚本--语法篇

标签:shell脚本--语法篇

原文地址:http://zhangxinbei.blog.51cto.com/10918184/1836720

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!