shell 脚本编写 if else then

shell 脚本编写 if else then

if ....; then

  ....

elif ....; then

  ....

else

  ....

fi

大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等等…   通常用" [ ] "来表示条件测试。注意这里的空格很重要。要确保方括号的空格。
[ -f "somefile" ] :判断是否是一个文件
[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限
[ -n "$var" ] :判断$var变量是否有值
[ "$a" = "$b" ] :判断$a和$b是否相等          -r file     用户可读为真
-w file     用户可写为真
-x file     用户可执行为真
-f file     文件为正规文件为真
-d file     文件为目录为真
-c file     文件为字符特殊文件为真
-b file     文件为块特殊文件为真
-s file     文件大小非0时为真
-t file     当文件描述符(默认为1)指定的设备为终端时为真 
对于不含变量的任务简单shell脚本一般能胜任。但在执行一些决策任务时,就需要包含if/then的条件判断了。shell脚本编程支持此类运算, 包括比较运算、判断文件是否存在等。基本的if条件命令选项有: - eq —比较两个参数是否相等(例如,if [ 2 –eq 5 ])
-ne —比较两个参数是否不相等
-lt —参数1是否小于参数2
-le —参数1是否小于等于参数2
-gt —参数1是否大于参数2
-ge —参数1是否大于等于参数2
-f — 检查某文件是否存在(例如,if [ -f "filename" ])
-d — 检查目录是否存在
几乎所有的判断都可以用这些比较运算符实现。脚本中常用-f命令选项在执行某一文件之前检查它是否存在。
## #!/bin/sh
today=`date -d yesterday +%y%m%d`
file="apache_$today.tar.gz"
cd /home/chenshuo/shell
if [ -f "$file" ];then
echo "OK"
else
echo "error $file" >error.log
mail -s "fail backup from test" chenshuo@soufun.com <error.log
fi
其他:

整数比较

    -eq 等于,如:if [ "$a" -eq "$b" ]

    -ne 不等于,如:if [ "$a" -ne "$b" ]

    -gt 大于,如:if [ "$a" -gt "$b" ]

    -ge 大于等于,如:if [ "$a" -ge "$b" ]

    -lt 小于,如:if [ "$a" -lt "$b" ]

    -le 小于等于,如:if [ "$a" -le "$b" ]

     大于(需要双括号),如:(("$a" > "$b"))

    >= 大于等于(需要双括号),如:(("$a" >= "$b"))

    小数据比较可使用AWK

    字符串比较

    = 等于,如:if [ "$a" = "$b" ]

    == 等于,如:if [ "$a" == "$b" ],与=等价

转载于:https://www.cnblogs.com/chengjian-physique/p/8563278.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486676.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac怎么查看gitlab的注册邮箱_163电子邮箱怎么注册申请?手机号注册电子邮箱的小技巧...

电子邮箱帮助我们实现了无纸化&#xff0c;无需手写信件&#xff0c;通过电脑、手机输入&#xff0c;即可与收件人在网络上进行联系。电子邮箱的兴起&#xff0c;对于人与人之间的沟通和交流&#xff0c;增加了便捷性&#xff0c;促进了社会的发展与进步。目前的邮箱中&#xf…

c语言 switch案例,c语言switch case语句使用例子

c语言switch case语句使用例子发布时间&#xff1a;2020-04-23 11:48:53来源&#xff1a;亿速云阅读&#xff1a;421作者&#xff1a;小新这篇文章主要为大家详细介绍了c语言switch case语句使用例子&#xff0c;文中示例代码介绍的非常详细&#xff0c;具有一定的参考价值&…

把手机上的新浪微博客户端卸载了

因为我本身发微博的时候就是通过通过电脑上的浏览器发的&#xff0c;就连看别人发的微博也是通过浏览器发的&#xff0c;基本上也不怎么用手机客户端。反而是客户端总是推送各种新闻&#xff0c;我实在是没有这个需要&#xff0c;也完全不想被弹窗影响。 综上所述&#xff0c;因…

深度学习未来的三种方式

来源&#xff1a;海豚数据科学实验室深度学习的未来在于这三种学习模式&#xff0c;而且它们彼此之间密切相关&#xff1a;混合学习——现代深度学习方法如何跨越监督学习和非监督学习之间的边界&#xff0c;以适应大量未使用的无标签数据&#xff1f;复合学习——如何以创造性…

c 语言sort函数,C/c++语言sort函数如何使用

头文件是#include比如说数组a[5]{1,5,4,2,3};当你用sort(a,a5)时&#xff0c;就把数组a从小到大排序了for(i0;i<5;i){printf("%d \n",a[i]);}输出为1 2 3 4 5C语言中没有预置的sort函数。如果在C语言中&#xff0c;遇到有调用sort函数&#xff0c;就是自定义的一个…

android ocr识别源码_身份证识别OCR解决手动输入繁琐问题

随着互联网金融的的发展&#xff0c;越来越多的互联网金融公司都推出了自己的金融APP&#xff0c;这些APP都涉及到个人身份证信息的输入认证&#xff0c;如果手动去输入身份证号码和姓名&#xff0c;速度非常慢&#xff0c;且用户体验非常差。为了提高在手机移动终端上输入身份…

mybatis异常invalid comparison: java.util.Date and java.lang.String

原文链接&#xff1a;http://blog.csdn.net/wanghailong_qd/article/details/50673144 mybatis异常invalid comparison: java.util.Date and java.lang.String 开发中改动mapper文件后需要重新编译发布, 由于工程比较大非常耗时, 所以为方便快速测试干脆写了一个小java工程. 工…

计算机c语言等级考试PDF,国家计算机等级考试c语言精华.pdf

心之所向&#xff0c;所向披靡C 语言总复习顺序结构程序设计1.单字符输入输出&#xff1a;getchar(字符变量) &#xff1b;putchar(字符变量) &#xff1b;2.字符串输入输出&#xff1a;gets(字符数组名),puts(字符数组名)。3.格式化输入输出&#xff1a;(1)格式化输入&#xf…

什么是内卷?华为内部这篇文章读懂

来源&#xff1a;互联网坊间八卦&#xff08;ID:kekesil&#xff09;内卷的意思是明明已经靠近边界有个天花板&#xff0c;但却又不断自我激发&#xff0c;繁复化、精致化。概念的含糊其辞是无效讨论和跌入焦虑自我再生产困境的原因之一。判断内卷还是良性竞争的前置问题是回答…

锁屏界面显示某些设置已隐藏_iOS 14 隐藏功能,只要轻点手机背面就能截屏

关于 iOS 14 系统的一些功能我也为大家介绍了一些&#xff0c;iOS 14 已发布&#xff0c;界面大更新&#xff01;其实除了之外&#xff0c;iOS 14 系统还有许多隐藏的功能。那么今天我就为大家介绍 iOS 14 系统的隐藏功能之一&#xff1a;轻点背面。话不多说&#xff0c;我们先…

jacascript AJAX 学习

前言&#xff1a;这是笔者学习之后自己的理解与整理。如果有错误或者疑问的地方&#xff0c;请大家指正&#xff0c;我会持续更新&#xff01; AJAX 是 asynchronous javascript and XML 的简写&#xff0c;就是异步的 javascript 和 XML。这一技术能够向服务器请求额外的数据而…

android 自定义控件 焦点,android中设置控件获得焦点

android中&#xff0c;要使控件获得焦点&#xff0c;需要先setFocus,再requestFocus。以Button为例&#xff1a;btn.setFocusable(true);btn.setFocusableInTouchMode(true);btn.requestFocus();btn.requestFocusFromTouch();//获得失去焦点的监听器btn.setOnFocusChangeListen…

分享丨强化学习是针对优化数据的监督学习?

来源&#xff1a;AI科技大本营作者 | Ben Eysenbach、Aviral Kumar、Abhishek Gupta 编译 | 凯隐出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;强化学习&#xff08;RL&#xff09;可以从两个不同的视角来看待&#xff1a;优化和动态规划。其中&#xff0c;诸如REI…

stm32l0的停止模式怎么唤醒_手把手教你怎么利用旧电脑搭建NAS组建自己的黑群晖...

手把手教你怎么利用旧电脑搭建NAS组建自己的黑群晖Synology群晖科技&#xff08;Synology &#xff09;创立于 2000 年&#xff0c;自始便专注于打造高效能、可靠、功能丰富且绿色环保的 NAS 服务器&#xff0c;是全球少数几家以单纯的提供网络存储解决方案获得世界认同的华人企…

pat 甲级 1034. Head of a Gang (30)

1034. Head of a Gang (30) 时间限制100 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, YueOne way that the police finds the head of a gang is to check peoples phone calls. If there is a phone call between A and B, we say that A and B is relat…

有人说 GPT3 是“暴力美学”的结晶,它的工作原理你知道吗?| 动图详解

来源&#xff1a;CSDN如今&#xff0c;在科技领域掀起了一股GPT3的热潮。大规模语言模型&#xff08;比如GPT3&#xff09;的潜力惊艳了我们。虽然这些模型还没有成熟到大多数企业将之直接面对消费者&#xff0c;但却展示出一些智慧的火花&#xff0c;并让人坚信其将会加速自动…

android的listview多选功能,Android ListView实现单选及多选等功能示例

本文实例讲述了Android ListView实现单选及多选等功能的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;在项目中也遇到过给ListView的item添加选择功能。比如一个网购APP&#xff0c;有个历史浏览页面&#xff0c;这个页面现点击item单选/多选及全选删除功能。当…

git 生成ssh key_ubuntu git生成ssh key (公钥私钥)配置github或者码云

Git是分布式的代码管理工具&#xff0c;远程的代码管理是基于SSH的&#xff0c;所以要使用远程的Git则需要SSH的配置。github的SSH配置如下&#xff1a;设置Git的user name和email&#xff1a;git config --global user.name "xx"git config --global user.email &qu…

ThinkPHP5模型操作中的自动时间戳总结

ThinkPHP5中提供了非常优秀的自动时间戳功能。使用起来非常方便。 但是官网手册中的说明还是不是很详尽&#xff0c;因此整理再次&#xff0c;以方便后续使用时查阅。 一、一般情况下的自动填充create_time,update_time两个字段 对于固定的时间戳和时间日期型的字段&#xff0c…

android圆形头像 demo,Android图像处理之绘制圆形头像

在Android中&#xff0c;绘制圆形和绘制图片都是很容易的事情&#xff0c;但是绘制圆形图片就有点难倒人了。以前为了偷懒就直接去github上找一个开源项目&#xff0c;后来才发现绘制圆形图片其实也是很简单的事。绘制圆形图片也需要两个步骤&#xff1a;绘制圆形和绘制图片&am…