10 i lt shell的if_shell学习(10)- if的使用
在写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的使用相关推荐
- 10 i lt shell的if_shell脚本----if(数字条件,字符串条件,字符串为空)
二元比较操作符,比较变量或者比较数字. 注意数字与字符串的区别. 1.整数比较 -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如: ...
- 10 i lt shell的if_shell脚本编程之if、case条件语句
程序执行三种顺序 顺序执行 选择执行 循环执行 选择执行语句: if语句 格式: 单分支: if 判断条件:then 条件分支代码 fi 双分支: if 判断条件:then 条件为真时语句 else ...
- java编程石头剪刀布图片_石头、剪刀、布!10分钟带你打开深度学习大门,代码已开源...
原标题:石头.剪刀.布!10分钟带你打开深度学习大门,代码已开源 沉沉 发自 宇宙中心 量子位 出品 | 公众号 QbitAI 深度学习技术的不断普及,越来越多的语言可以用来进行深度学习项目的开发,即 ...
- Ubuntu18.04+RTX 2080Ti+CUDA 10.0 +cuDNN+PyTorch搭建深度学习环境
SSH无密码登陆 安装SSH Server Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server: sudo apt-get install openssh-serv ...
- 深度学习(10):自然语言处理(转)
切换站点概览 目录 你已经读了46% 1. 词嵌入 2. 词嵌入方法 2.1. 神经概率语言模型 2.2. Word2Vec 2.3. GloVe 3. 词嵌入应用:情感分类器 4. 词嵌入除偏 5. ...
- JavaScript学习10 JS数据类型、强制类型转换和对象属性
JavaScript学习10 JS数据类型.强制类型转换和对象属性 JavaScript数据类型 JavaScript中有五种原始数据类型:Undefined.Null.Boolean.Number以 ...
- HTML5 权威指南第 10 章 文档分节 学习笔记
HTML5 权威指南第 10 章 文档分节 学习笔记 第 8 章 标记文字 内容从从文字出发,专注如何将单体内容正确的呈现出来:第 9 章 组织内容 内容从段落出发,专注如何将单体内容合理的放在段落中 ...
- ScalersTalk 机器学习小组第 21 周学习笔记(深度学习-10)
ScalersTalk 机器学习小组第 21 周学习笔记(深度学习-10) Scalers点评:机器学习小组是成长会的内部小组,这是成长会机器学习小组第21周学习笔记,也是深度学习第10次的复盘笔记 ...
- 沈超+shell课件_[Linux教程 李明 沈超 兄弟连]10.4.4 Shell基础-Bash变量-预定义变量.ppt...
[Linux教程 李明 沈超 兄弟连]10.4.4 Shell基础-Bash变量-预定义变量 第十讲 Shell基础 主讲人:沈超(/lampsc) 交流论坛: 课程大纲 10.1 Shell概述 1 ...
最新文章
- 如何学好Python?相信很多人都做错了!
- 神经网络反向传播算法
- 简单的JS统计静态网站访问次数
- java内部类文件,Java内部类学习
- 电子商务基础课件(10.25更新)
- 2018年10月17日普级B组【模拟赛】
- php组成,PHP的控制结构,PHP脚本是由一系列语句组成的。
- re模块常用修饰符_在c语言中修饰符的用法
- 纺织人工智能的下一个独角兽——智能验布机
- 【转载】视频网站六间房将从200人减至60人裁员三分之二
- 阿里架构师首次畅谈余额宝背后的故事
- mysql的底层运行原理,【数据库】震惊!!MySQL的底层原理竟然是这样
- PDF阅读器如何实现免费论文查重
- 汉字区位码查询与算法
- 我的口琴之路(附c调简谱)--------一个命中注定音乐巅峰是小星星的男人
- 无线网络的设置和使用
- 楪祈机器人_饥荒 Inori楪祈人物MOD V20161211
- 数据挖掘——基于R文本情感分析(2)
- 检查内存泄露的利器--VLD使用指南
- [LnOI2019]长脖子鹿省选模拟赛 东京夏日相会
热门文章
- Mylyn 2.0,第 2 部分: 自动上下文管理
- ubuntu装机必备
- PAT甲级1092 To Buy or Not to Buy :[C++题解]哈希表
- Linux虚拟内存和进程虚拟地址空间简述
- 编译问题一 undefined reference to `EVP_sha1' ‘RAND_byte’ ‘DES_key_sched’ 问题解决
- mysql中怎样扑抓到是那个字段出错_mysql 常见的几个错误问题
- 华为商城手机抢购软件_近10万人抢购华为高端5G手机!P40 Pro+开卖,北京多家店无现货...
- 出色性能服务器,浪潮服务器:演绎出色传输与存储性能
- so文件反编译_安卓攻防so模块自动化修复实战
- 欧式期权matlab编码蒙特卡罗方法,基于MATLAB的金融工程方法与实践第七章 基于蒙特卡洛方法的期权定价.ppt...