数值运算

整数运算【三种,随便掌握一种即可】
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. 【转】TCHAR

    TCHAR 就是当你的字符设置为什么就是什么例如: 当程序编译为    ANSI,    TCHAR 相当于 CHAR当程序编译为 UNICODE, TCHAR 相当于WCHAR char       ...

  2. LINUX获取文件信息

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

  3. C++复制、压缩文件夹

    之前写过一篇用zlib库来压缩的,但zlib只能压缩文件,我需要压缩文件夹,要想压缩文件夹还得利用zlib库自己写代码,我是真的服了,一个开源库这么不好用. C++复制文件夹也是麻烦事,网上这篇文章: ...

  4. HTTP就是这么简单

    为什么要学HTTP? 我们绝大多数的Web应用都是基于HTTP来进行开发的.我们对Web的操作都是通过HTTP协议来进行传输数据的. 简单来说,HTTP协议就是客户端和服务器交互的一种通迅的格式. H ...

  5. Centos系统下硬盘扩容

    装好CentOS后,发现空间太小,怎样才能增加硬盘容量?那就是再建一个硬盘: 打开虚拟经济的设置添加硬盘 查看现有的磁盘空间 fdisk -l [root@localhost ~]# fdisk -l ...

  6. rabbitmq的构架和原理(三)

    前面两篇博文已经将环境安装和相关配置介绍了,现在开始正式学习rabbitmq的使用了: rabbitMQ的构架 rabbitmq作为消息队列,一条消息从发布到订阅消费的完整流程为: 消息 --> ...

  7. CSS3动画详解(超详细)

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 前言 本文主要内容: 过渡:transition 2D 转换 trans ...

  8. 【linux之简介】

    一.操作系统是什么 1.定义 操作系统,英文名称Operating System,简称OS,是计算机系统中必不可少的基础系统软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心. ...

  9. 使用最小堆优化Dijkstra算法

    OJ5.2很简单,使用priority_queue实现了最小堆竟然都过了OJ……每次遇到relax的问题时都简单粗暴地重新push进一个节点…… 然而正确的实现应该是下面这样的吧,关键在于swap堆中 ...

  10. BZOJ 2595: [Wc2008]游览计划 [DP 状压 斯坦纳树 spfa]【学习笔记】

    传送门 题意:略 论文 <SPFA算法的优化及应用> http://www.cnblogs.com/lazycal/p/bzoj-2595.html 本题的核心就是求斯坦纳树: Stein ...