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 命令 ...
随机推荐
- openstack一键安装脚本(转载)
#!/bin/sh # openstack pike 单机 一键安装 # 环境 centos 7.4.1708 x86_64 # 更多内容 http://dwz.cn/openstack # Myde ...
- mkdir与mkdirs的区别
mkdir与mkdirs的区别 项目中需要在代码中读取或创建文件保存路径,用到了mkdir,查看还有个mkdirs方法,这里记录一下两者的区别. 1.关于两者的说明如下: boolean mkdir( ...
- 移动端的弹窗滚动禁止body滚动
前言 最近一个需求是弹窗展示列表,显然是需要一个滚动条的,而滚动到底部就会穿透到body滚动,而阻止默认行为是不行的,这样两个都滑动不了 所以我在点击出现弹窗的时候在body加了以下css让它没有滚动 ...
- Oracle常见授权与回收权限——grant和revoke
1.GRANT 赋于权限常用的系统权限集合有以下三个:CONNECT(基本的连接), RESOURCE(程序开发), DBA(数据库管理) 常用的数据对象权限有以下五个:ALL ON 数据对象名, S ...
- OI黑科技:读入优化
利用getchar()函数加速读入. Q:读入优化是什么? A :更加快速地读入一些较大的数字. Q:scanf不是已经够快了吗? A:Naive,scanf还是不!够!快! Q:那怎么办呢? A:我 ...
- ------- 软件调试——注销 QQ 过滤驱动设置的事件通知 CallBack (完)-------
---------------------------------------------------------------------------------- 本系列的最后一篇演示如何通过调试手 ...
- 在CentOS 6.x上配合Windows客户端搭建 git(gitosis)服务器
一.在 CentOS 上安装 git 和 gitosis: 逐条执行如下语句: sudo yum install git python-setuptools cd /opt sudo git clon ...
- Redis 学习(一) —— 安装、通用key操作命令
一.Redis介绍 1.介绍 通常,在系统中,我们会把数据交由数据库来存储,但传统的数据库增删查改的性能较差,且比较复杂.根据 80/20 法则,百分之八十的业务访问集中在百分之二十的数据上.是否可以 ...
- 【Tools】Pycharm2017 windows安装与修改中文界面教程
[windows] 1.到官网下载Pycharm最新版 https://www.jetbrains.com/pycharm/download/#section=windows 2.安装激活 Pycha ...
- youtube视频字幕下载
视频下载 安装TamperMonkey插件 字幕下载 http://mo.dbxdb.com/setting.html https://zhuwei.me/y2b/