shell脚本基础 数值运算 判断 及if语句
数值运算
整数运算【三种,随便掌握一种即可】
expr 数字 运算符 数字
[root@ceshiji ~]# expr 1 + 1(运算符号都是+ - * / 注:*需要\*。%是取余,余数只有0 1 2)
2
[root@ceshiji ~]# expr 45 \* 1
45
echo$[数字 运算符 数字]
[root@ceshiji ~]# echo $[89*89+454848*874851]
397924235569
let
i++ == i=i+1
i+=2 == i=i+2
i*=2 == i=i*2
i\=2 == i=i\2
i-=3 == i=i-2
[root@ceshiji ~]# a=13
[root@ceshiji ~]# let a++
[root@ceshiji ~]# echo $a
14
[root@ceshiji ~]# let a+=6
[root@ceshiji ~]# echo $a
20
小数运算【bc】(可以做逻辑运算,管道操作方便)
[root@ceshiji ~]# echo "84515*4511.894654+4856.844*154.158-15451" |bc
382056047.039810
[root@ceshiji ~]# echo "899<1" |bc
0
[root@ceshiji ~]# echo "899>1" |bc
1
————————————————————————————————————————
命令的组合:
语法格式
判断:
[]:判断语句要在括号里执行
逻辑分隔操作
&&:给定条件必须成立,整个测试结果才为真
||:只要其中一个条件成立,整个测试结果为真
;:先执行,后执行
A&&B:仅A成功了,才执行B
A;B:执行A,再执行B
A||B:仅A失败,才执行B
常见的测试操作:(目录,文件)
-e:判断对象是否存在,存在则为真
-d:判断对象是否为目录,是则为真
-f:判断对象是否为一般文件,是则为真
-r:判断对象是否有可读权限,是则为真
-w:判断对象是否有可写权限,是则为真
-x:判断对象是有可执行权限,是则为真
-s:判断文件是否非空,
整数值比较:(数量)
-eq:等于
-ne:不等于
-ge:大于或等于
-le:小于或等于
-gt:大于
-lt:小于
字符串比较:
==:两个字符串相同
!=:两个字符串不相同
-z:字符串的值为空
-n:字符串的值不为空,(相当于! -z)
[root@ceshiji ~]# vim a.sh(删除脚本)
#!/bin/bash
read -p "卧槽,你真要删除啊y/n" sure(read -p 显示在终端上的内容)
[ -z $sure ]&&exit (判断$sure是否为空(-z)&&:符合,为则停止)
[ $sure = y ]&& rm -rf $1(如果输入y &&符合,则继续下一步)
[root@ceshiji ~]# ./a.sh ftp.sh
卧槽,你真要删除啊y/ny
[root@ceshiji ~]# vim b.sh(监控登陆用户量)
#!/bin/bash
num=`who |wc -l`(``反撇号中间写命令,此命令统计有多少用户,把数量放num里)
[ $num -ge 4 ]&& mail -s 'errro' root < /etc/passwd(当用户数量大于(ge)4个&&:符合,执行发送邮件)
[root@ceshiji ~]# crontab -e(添加到计划任务监控)
* * * * * /root/b.sh
[root@ceshiji ~]# vim a.sh(猜字游戏)
#!/bin/bash
xx=$((RANDOM%10))(xx变量,RANDOM是linux系统产生的随机数,%10表示10的数以内)
read -p "hydra[0-10]:" cai
[ $cai -eq $xx ]&& echo ok &&exit||echo kill(当输入的数等于(eq)显示ok并退出,不中则kill)
[root@ceshiji ~]# vim a.sh
#!/bin/bash
[ ! -d /mnt/iso ]&& mkdir /mnt/iso(!-d 取反,如果真&&:符合,则创建mnt/iso)
[ -e /ISO/rhel-server-6.7-x86_64-dvd.iso ]&& mount -o loop /ISO/rhel-server-6.7-x86_64-dvd.iso /mnt
/iso(-e:判断对象是否存在,&&:符合,存在就挂载到mnt/iso)
————————————————————————————————————————————————————————
if语句
单分支格式:(只要判断满足了就执行以下命令)
if [判断];then
命令
.. ..
fi
[root@ceshiji ~]# vim a.sh
#!/bin/bash
if [ $USER = root ];then
yum clean all
yum repolist
fi
双分支格式:(判断不满足,重新判断执行下一条件)
if [ 判断 ];then
命令
elif [ 判断 ];then
命令
else
命令
fi
测试:
[root@ceshiji ~]# vim a.sh
#!/bin/bash
read -p 暗号?:hydra
if [ $hydra -gt 9999 ];then
echo "hail hydra"
elif [ $hydra -gt 8888 ];then
echo "hail"
elif [ $hydra -gt 7777 ];then
echo "hydra"
else
echo "mdzz"
fi
测试:猜数字游戏
[root@ceshiji ~]# vim b.sh
#!/bin/bash
suiji=$[RANDOM%100]
for i in {1..9}(i是变量,代表1到9的所有整数,代表最多猜9次)
do
read -p "hydra[0-99]"shuo
if [ $shuo -eq $suiji ];then
echo "hail hydra"
exit
elif [ $shuo -gt $suiji ];then
echo "mdzz"
else
echo "mdzz"
fi
done
多分支格式:(判断不满足,重新判断执行下一条件,依此类推)
if [ 判断 ]&&[ 判断 ];then
命令
elif[ 判断 ]&&[ 判断 ];then
命令
else
命令
fi
[root@ceshiji ~]# vim c.sh
#!/bin/bash
read -p "等级(1-100)": "dj"
if [ $dj -ge 85 ]&&[ $dj -le 100 ];then
echo "$dj级! dalao"
elif [ $dj -ge 70 ]&&[ $dj -le 84 ];then
echo "$dj级! emmm"
else
echo "$dj级! mdzz"
fi
——————————————————————————————————
shell脚本基础 数值运算 判断 及if语句的更多相关文章
- shell 脚本基础与条件判断
#!shell脚本格式决定专业性 #!/bin/bash #filename:脚本名 #author:作者 #date:时间 #脚本作用 脚本的执行方式 #脚本名为wk.sh 绝对路径 /root/ ...
- Shell基础(二):Shell中的数值运算、条件测试操作、使用if选择结构
一.Shell中的数值运算 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 使用expr.$[ ].let等整数运算工具:定义变量X=1234,然后计算X与78 ...
- shell脚本-基础
shell脚本-基础 编程基础 程序是指令+ 数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell 程序提供了编程能力,解释执行. 计算运行二进 ...
- Linux shell脚本基础学习详细介绍(完整版)二
详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...
- Linux shell脚本基础学习详细介绍(完整版)一
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
- Shell脚本基础学习
Shell脚本基础学习 当你在类Unix机器上编程时, 或者参与大型项目如k8s等, 某些框架和软件的安装都是使用shell脚本写的. 学会基本的shell脚本使用, 让你走上人生巅峰, 才怪. 学会 ...
- 什么是Shell?Shell脚本基础知识详细介绍
这篇文章主要介绍了什么是Shell?Shell脚本基础知识介绍,本文是一篇Shell脚本入门文章,在本文你可学到什么是Shell.有多少种Shell.一个Shell脚本代码实例,需要的朋友可以参考下 ...
- 详细介绍Linux shell脚本基础学习
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
- centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 第三十六节课
centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 ...
随机推荐
- 重拾Python(1):使用Anaconda搭建Python开发环境(Windows7)
1.为什么选择Anaconda? Anaconda解决了Python使用痛点. Python好用但是令人头疼的就是库管理与Python不同版本的问题,特别是Windows环境下. 2.什么是Anaco ...
- c# 事件路由器
事件转发 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys ...
- cache.config文件配置模板
# # cache.config # # The purpose of this file is to alter caching parameters of # specific objects o ...
- python之金融与量化分析
一.金融 二.ipython 基础功能 ipython 快捷键
- Core Animation 文档翻译 (第五篇)
构建Layer层次结构 在APP中大多数情况下,将Layer和View对象结合使用是Layer最好的使用方式.然而,很多时候我们可能需要通过添加单独的Layer对象,以便增加视图继承层次:当为了提 ...
- 精通libGDX游戏开发-RPG实战-开发游戏的基本前提
说起RPG,大概国人是不会陌生的. 这不得不从中国单机游戏市场说起,由于早期软件市场被盗版杀死,顺带的,单机游戏软件作为软件市场的分支,也没赚什么钱,养不活公司纷纷倒闭,只到RPG游戏<仙剑奇侠 ...
- IDEA tomcat启动异常 org.apache.catalina.startup.ContextConfig parseWebXml
启动Tomcat发现有异常,总是无法启动,具体的异常日志为下图 具体的解决方法为:在tomcat的conf/content.xml中加上<Loader delegate="true&q ...
- AC 自动机 模板
简单版 #include <iostream> #include <cstdio> #include <algorithm> #include <cstrin ...
- C#实现航班查询及预订
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- 基于Spring Boot,使用JPA操作Sql Server数据库完成CRUD
完成一个RESTful服务,提供几个访问接口,用来操作较简单的联系人信息,数据保存在Sql Server数据库中. 1.使用STS创建工程. 使用STS创建RESTful工程,可以参考: <用S ...