在写Linux脚本的时候,经常会用到判断,这篇主要讲if的具体使用。

if用法:

if [ ] ;then

command

elif [ ] ;then

command

else

command

fi

Shell 里面比较字符写法:

-eq   等于

-ne    不等于

-gt    大于

-lt    小于

-le    小于等于

-ge   大于等于

-z    空串

=    两个字符相等

!=    两个字符不等

-n    非空串

判断参数见下表:

类型

运算符

描述

示例

文件比较运算符

-e filename

如果 filename 存在,则为真

[ -e /var/log/syslog ]

-d filename

如果 filename 为目录,则为真

[ -d /tmp/mydir ]

-f filename

如果 filename 为常规文件,则为真

[ -f /usr/bin/grep ]

-L filename

如果 filename 为符号链接,则为真

[ -L /usr/bin/grep ]

-r filename

如果 filename 可读,则为真

[ -r /var/log/syslog ]

-w filename

如果 filename 可写,则为真

[ -w /var/mytmp.txt ]

-x filename

如果 filename 可执行,则为真

[ -L /usr/bin/grep ]

字符串比较运算符

-z string

如果 string 长度为零,则为真

[ -z $myvar ]

-n string

如果 string 长度非零,则为真

[ -n $myvar ]

string1 = string2

如果 string1 与 string2 相同,则为真

[ $myvar = one two three ]

string1 != string2

如果 string1 与 string2 不同,则为真

[ $myvar != one two three ]

算术比较运算符

num1 -eq num2

等于

[ 3 -eq $mynum ]

num1 -ne num2

不等于

[ 3 -ne $mynum ]

num1 -lt num2

小于

[ 3 -lt $mynum ]

num1 -le num2

小于或等于

[ 3 -le $mynum ]

num1 -gt num2

大于

[ 3 -gt $mynum ]

num1 -ge num2

大于或等于

[ 3 -ge $mynum ]

脚本栗子1:

#!/bin/bashif [ -d /home/kumufengchun/trash ];then

echo 'ok'

else

echo 'no'

fi

if [ -e /home/kunufengchun/test.sh ] && [ -f /home/kumufengchun/test.sh ];then

echo 'exist'

else

echo 'noexist'

fi;

注意:在判断时,if后边的中括号前后一定要有空格,否则会报错,应写成 if [ -e /home/kunufengchun/test.sh ],而不是 if [-e /home/kunufengchun/test.sh]

脚本栗子2:

#!/bin/bash

# This script prints a message about your weightifyou give it your

# weightin kilos and hight incentimeters.if [ ! $# == 2 ]; then

echo "Usage: $0 weight_in_kilos length_in_centimeters"exitfiweight="$1"height="$2"idealweight=[height - 110]if [ weight−leidealweight ] ; then

echo "You should eat a bit more fat."

else

echo "You should eat a bit more fruit."

fi# weight.sh 70 150You should eat a bitmorefruit.

# weight.sh 70 150 33Usage: ./weight.sh weight_in_kilos length_in_centimeters

位置参数 1,2,..., N,#代表了命令行的参数数量, $0代表了脚本的名字,

第一个参数代表1,第二个参数代表2,以此类推,参数数量的总数存在$#中,上面的例子显示了怎么改变脚本,如果参数少于或者多余2个来打印出一条消息。

# bash -x tijian.sh 60 170

+ weight=60

+ height=170

+ idealweight=60

+ '[' 60 -le 60 ']'

+ echo 'You should eat a bit more fat.'

You should eat a bit more fat.

其中-x用来检查脚本的执行情况。

10 i lt shell的if_shell学习(10)- if的使用相关推荐

  1. 10 i lt shell的if_shell脚本----if(数字条件,字符串条件,字符串为空)

    二元比较操作符,比较变量或者比较数字. 注意数字与字符串的区别. 1.整数比较 -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如: ...

  2. 10 i lt shell的if_shell脚本编程之if、case条件语句

    程序执行三种顺序 顺序执行 选择执行 循环执行 选择执行语句: if语句 格式: 单分支: if 判断条件:then 条件分支代码 fi 双分支: if 判断条件:then 条件为真时语句 else ...

  3. java编程石头剪刀布图片_石头、剪刀、布!10分钟带你打开深度学习大门,代码已开源...

    原标题:石头.剪刀.布!10分钟带你打开深度学习大门,代码已开源 沉沉 发自 宇宙中心 量子位 出品 | 公众号 QbitAI 深度学习技术的不断普及,越来越多的语言可以用来进行深度学习项目的开发,即 ...

  4. Ubuntu18.04+RTX 2080Ti+CUDA 10.0 +cuDNN+PyTorch搭建深度学习环境

    SSH无密码登陆 安装SSH Server Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server: sudo apt-get install openssh-serv ...

  5. 深度学习(10):自然语言处理(转)

    切换站点概览 目录 你已经读了46% 1. 词嵌入 2. 词嵌入方法 2.1. 神经概率语言模型 2.2. Word2Vec 2.3. GloVe 3. 词嵌入应用:情感分类器 4. 词嵌入除偏 5. ...

  6. JavaScript学习10 JS数据类型、强制类型转换和对象属性

    JavaScript学习10 JS数据类型.强制类型转换和对象属性 JavaScript数据类型 JavaScript中有五种原始数据类型:Undefined.Null.Boolean.Number以 ...

  7. HTML5 权威指南第 10 章 文档分节 学习笔记

    HTML5 权威指南第 10 章 文档分节 学习笔记 第 8 章 标记文字 内容从从文字出发,专注如何将单体内容正确的呈现出来:第 9 章 组织内容 内容从段落出发,专注如何将单体内容合理的放在段落中 ...

  8. ScalersTalk 机器学习小组第 21 周学习笔记(深度学习-10)

    ScalersTalk 机器学习小组第 21 周学习笔记(深度学习-10) Scalers点评:机器学习小组是成长会的内部小组,这是成长会机器学习小组第21周学习笔记,也是深度学习第10次的复盘笔记 ...

  9. 沈超+shell课件_[Linux教程 李明 沈超 兄弟连]10.4.4 Shell基础-Bash变量-预定义变量.ppt...

    [Linux教程 李明 沈超 兄弟连]10.4.4 Shell基础-Bash变量-预定义变量 第十讲 Shell基础 主讲人:沈超(/lampsc) 交流论坛: 课程大纲 10.1 Shell概述 1 ...

最新文章

  1. 如何学好Python?相信很多人都做错了!
  2. 神经网络反向传播算法
  3. 简单的JS统计静态网站访问次数
  4. java内部类文件,Java内部类学习
  5. 电子商务基础课件(10.25更新)
  6. 2018年10月17日普级B组【模拟赛】
  7. php组成,PHP的控制结构,PHP脚本是由一系列语句组成的。
  8. re模块常用修饰符_在c语言中修饰符的用法
  9. 纺织人工智能的下一个独角兽——智能验布机
  10. 【转载】视频网站六间房将从200人减至60人裁员三分之二
  11. 阿里架构师首次畅谈余额宝背后的故事
  12. mysql的底层运行原理,【数据库】震惊!!MySQL的底层原理竟然是这样
  13. PDF阅读器如何实现免费论文查重
  14. 汉字区位码查询与算法
  15. 我的口琴之路(附c调简谱)--------一个命中注定音乐巅峰是小星星的男人
  16. 无线网络的设置和使用
  17. 楪祈机器人_饥荒 Inori楪祈人物MOD V20161211
  18. 数据挖掘——基于R文本情感分析(2)
  19. 检查内存泄露的利器--VLD使用指南
  20. [LnOI2019]长脖子鹿省选模拟赛 东京夏日相会

热门文章

  1. Mylyn 2.0,第 2 部分: 自动上下文管理
  2. ubuntu装机必备
  3. PAT甲级1092 To Buy or Not to Buy :[C++题解]哈希表
  4. Linux虚拟内存和进程虚拟地址空间简述
  5. 编译问题一 undefined reference to `EVP_sha1' ‘RAND_byte’ ‘DES_key_sched’ 问题解决
  6. mysql中怎样扑抓到是那个字段出错_mysql 常见的几个错误问题
  7. 华为商城手机抢购软件_近10万人抢购华为高端5G手机!P40 Pro+开卖,北京多家店无现货...
  8. 出色性能服务器,浪潮服务器:演绎出色传输与存储性能
  9. so文件反编译_安卓攻防so模块自动化修复实战
  10. 欧式期权matlab编码蒙特卡罗方法,基于MATLAB的金融工程方法与实践第七章 基于蒙特卡洛方法的期权定价.ppt...