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、]与; 之间不能有空格
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...
给主人留下些什么吧!~~
评论热议
在这里,不给出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 | [字体:大 中 小] |
格式:
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...
给主人留下些什么吧!~~
评论热议
相关文章推荐
- linux shell脚本 取得外网IP并保存到文件
- linux/shell每日学习笔记
- /bin/bash^M: bad interpreter: No such file or directory
- linux shell 字符串操作详解 (长度,读取,替换,截取,连接,对比,删除,位置 )
- shell script - self learning
- shell 在文件名后面添加特定数据
- 判断文件是否存在 shell 脚本
- Linux Shell函数
- Makefile 中命令的@,-@,+@符号 作用, 案例分析
- shell定时任务,让你玩转linux不是梦!
- PowerShell学习资料
- 习题2 注释和#号
- shell脚本生成指定字符的随机串
- 使用 ShellExecuteEx 显示文件属性
- 习题1 第一个程序
- Java9特性预览——Jshell
- Hbase_shell底层源码乱砍乱伐--59
- Hbase_shell底层源码乱砍乱伐--59
- SecureCRT 常用技巧 & Bash快捷键
- shell获取函数的返回值