您的位置:首页 > 运维架构 > Shell

Shell if语句用法小结

2016-07-12 14:42 639 查看
在shell编程中,常常会用if来判断条件,从而控制程序的流程分支。if语句是非常简单,跟其他语言差不多,不过,在shell中,要注意一些细节是很有必要的。

在这里,不给出if的基本语法格式,网上搜索下,很多的。这里给出个简单的例子:

#! /bin/sh -  

  

name=`basename $0 .sh`  

  

if [ $# -ne 2 -a $# -ne 3 ]; then  

        echo "Usage: $name value1 value2"  

        echo "       $name value1 value2 value3 "  

        exit 1  

fi  

  

if [ $# -eq 2 ]; then  

        echo "two args: $1, $2"  

else  

        echo "three args: $1 $2 $3"  

fi  

  

if [ $# -eq 2 ]; then  

        if [ $1 -gt $2 ]; then  

                echo " $1 > $2"  

        elif [ $1 -lt $2 ]; then  

                echo " $1 < $2 "  

        else  

            echo "$1 = $2"  

        fi  

else  

        if [ $1 -ge $2 -a $1 -ge $3 ]; then  

                echo "$1 >=$2 , $1 >=$3"  

        elif [ $1 -ge $2 -a $1 -lt $3 ]; then  

                echo "$1 >=$2 ,$1 < $3"  

        elif [ $1 -lt $2 -a $1 -ge $3 ]; then  

                echo "$1 < $2, $1 >= $3"  

        else  

                echo "$1 < $2, $1 < $3"  

        fi  

fi  

exit 0  

将上面的内容保存为文件保存为if.sh,并给文件赋予可执行权限。然后通过调用该shell。该shell脚本主要是通过if语句,对不同的参数进行判断输出。上面的脚本基本囊括了常用的if then if else  if elif 。if语句中,主要需要注意以下几点:

1、if 与[ 之间必须有空格

2、[ ]与判断条件之间也必须有空格

3、]与; 之间不能有空格


Shell脚本比较运算符及逻辑运算符小结

[日期:2012-02-03]
来源:Linux社区  作者:love__coder
[字体:大 中 小]
1、数值

格式:

test "num1" opr "num2"

[ "num1" opr "num2" ]

opr 取值:

相等:-eq

不等:-ne

大于:-gt

小于:-lt  【l是字母L的小写】

小于等于:-le

大于等于:-ge

2、字符串

格式:

[ str1 opr str2]

[ opr str ]

opr取值:

相等:=

不等:!=

空串:-z

非空串:-n

3、文件

格式:

[ opr file ]

opr取值:

目录: -d

文件: -f

链接: -L

可读: -r

可写: -w

可执行: -x

文件非空: -s

4、逻辑运算符

逻辑与: -a          格式: [ condition1 -a condition2 ]

逻辑或: -o          格式: [ condition1 -o condition2 ]

逻辑否: !             格式: [ ! condition ]


<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>

阅读(124) | 评论(0) | 转发(0) |

0
上一篇:MYSQL FOR循环逐行从文件中读取参数

下一篇:linux awk命令详解

相关热门文章
linux 常见服务端口

xmanager 2.0 for linux配置

【ROOTFS搭建】busybox的httpd...

openwrt中luci学习笔记

什么是shell

linux dhcp peizhi roc

关于Unix文件的软链接

求教这个命令什么意思,我是新...

sed -e "/grep/d" 是什么意思...

谁能够帮我解决LINUX 2.6 10...

给主人留下些什么吧!~~

评论热议
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: