数值运算

整数运算【三种,随便掌握一种即可】
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语句的更多相关文章

  1. shell 脚本基础与条件判断

    #!shell脚本格式决定专业性 #!/bin/bash #filename:脚本名 #author:作者 #date:时间 #脚本作用 脚本的执行方式  #脚本名为wk.sh 绝对路径 /root/ ...

  2. Shell基础(二):Shell中的数值运算、条件测试操作、使用if选择结构

    一.Shell中的数值运算 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 使用expr.$[ ].let等整数运算工具:定义变量X=1234,然后计算X与78 ...

  3. shell脚本-基础

    shell脚本-基础 编程基础 程序是指令+ 数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell 程序提供了编程能力,解释执行. 计算运行二进 ...

  4. Linux shell脚本基础学习详细介绍(完整版)二

    详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...

  5. Linux shell脚本基础学习详细介绍(完整版)一

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  6. Shell脚本基础学习

    Shell脚本基础学习 当你在类Unix机器上编程时, 或者参与大型项目如k8s等, 某些框架和软件的安装都是使用shell脚本写的. 学会基本的shell脚本使用, 让你走上人生巅峰, 才怪. 学会 ...

  7. 什么是Shell?Shell脚本基础知识详细介绍

    这篇文章主要介绍了什么是Shell?Shell脚本基础知识介绍,本文是一篇Shell脚本入门文章,在本文你可学到什么是Shell.有多少种Shell.一个Shell脚本代码实例,需要的朋友可以参考下 ...

  8. 详细介绍Linux shell脚本基础学习

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  9. centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 第三十六节课

    centos  shell脚本编程2 if 判断  case判断   shell脚本中的循环  for   while   shell中的函数  break  continue  test 命令   ...

随机推荐

  1. 手机文件夹的emulated什么意思

    词典翻译是仿真,就是自带的存储卡, 手机的储存方式有两种,一种是手机内存 ,一种是SD卡内存.

  2. Redis进阶实践之九 独立封装的RedisClient客户端工具类

    一.引言 今天开始有关Redis学习的第九篇文章了,以后肯定会大量系统使用Redis作为缓存介质,为了更好的更好的Redis,自己写了两个工具类,但是这两个工具类,没有提供一致的接口,是为了使用的独立 ...

  3. 老凡原创PHPcms发布上架chinaz

    FanCms内容管理系统(3网兼容) FanCms内容管理系统(3网兼容)核心使用CodeIgniter框架.使用SQlite数据库,不需要安装,上传到任意支持PHP的空间,就能使用.高级URL自定义 ...

  4. Spring源码解析一(框架梳理)

    整体架构 打算开始写这个系列,不为上首页,也不为博取多少关注,只有一个目的:梳理知识,扩充思路:废话不多,开始吧.第一步,大家去spring的官方github下面去下载它的源码,具体的自己谷歌,我已经 ...

  5. phantomjs集成到scrapy中,并禁用图片,切换UA

    phantomjs是一个没有界面的浏览器,支持各种web标准,提供DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG,对于爬取一些经过js渲染的页面非常有用.但是phantomj ...

  6. c#结构体、打他table、excel、csv互转

    1.csv相关 public static class CsvHelper { /// <summary> /// 根据csv路径获取datatable /// </summary& ...

  7. Python基础篇(三)

    元组是序列的一种,与列表的区别是,元组是不能修改的. 元组一般是用圆括号括起来进行定义,如下: >>> (1,2,3)[1:2]     (2,) 如果元组中只有一个元素,元组的表示 ...

  8. CTSC 2017 滚粗记

    CTSC 2017 滚粗记 结束好几天了一直没写. 明天就要去参加二轮省选了,填一下坑吧. 所以可能很多东西已经忘了 Day -2 [5.5 Fri] 周五晚上是其他学信竞的同学来机房的时间... 也 ...

  9. BZOJ 2882: 工艺 [后缀自动机+map]

    Description 小敏和小燕是一对好朋友. 他们正在玩一种神奇的游戏,叫Minecraft. 他们现在要做一个由方块构成的长条工艺品.但是方块现在是乱的,而且由于机器的要求,他们只能做到把这个工 ...

  10. Xposed 初尝

    1.初次使用xposed,之前直至其名,不闻其用. 2.相关引用配置上图 build.gradle配置,如下: dependencies { compile fileTree(include: ['* ...