数值运算

整数运算【三种,随便掌握一种即可】
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. nodejs爬虫笔记(三)---爬取YouTube网站上的视频信息

    思路:通过笔记(二)中代理的设置,已经可以对YouTube的信息进行爬取了,这几天想着爬取网站下的视频信息.通过分析YouTube,发现可以从订阅号入手,先选择几个订阅号,然后爬取订阅号里面的视频分类 ...

  2. Hello 2018

    愈发觉得写技术博客对于自己写作能力的提升会很有帮助,于是在今天终于用Github+Jekyll的方式搭建了自己的博客,从今往后就在这里记录自己在技术上成长的点滴,希望自己的总结和思考也能帮助到其他人. ...

  3. wxpython发布还自己图标的程序

    在py2exe安装脚本文件中,修改代码: setup( windows=[ { 'script': 'myapp.py', 'icon_resources': [(1, 'myicon.ico')] ...

  4. iOS-image图片压缩

    ///压缩图片 + (NSData *)imageCompressToData:(UIImage *)image{ NSData *data=UIImageJPEGRepresentation(ima ...

  5. vue项目实战总结

    马上过年了,最近工作不太忙,再加上本人最近比较懒,毫无斗志,不愿学习新东西,或许是要过年的缘故(感觉像是在找接口). 就把前一段时间做过的vue项目,进行一次完整的总结. 这次算是详细总结,会从项目的 ...

  6. 修改Java程序的进程名

    1.修改tomcat进程名字: 当同一个服务器上启动多个tomcat后,我们会在任务管理器中看见多个java.exe,当我们需要对某个tomcat进行监控时,却无法区分出该tomcat的进程,那么如何 ...

  7. vue2.0使用slot插槽分发内容

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  8. webstorm你不知道的秘密

    相信你们用webstorm肯定都会用上下面介绍的Emmet插件这个可以自带的哦 Emmet语法 子代:> 兄弟:+ 父代:^ 重复:* 成组:() ID:# class:. 属性:[] 编号:$ ...

  9. LeetCode - 653. Two Sum IV - Input is a BST

    Given a Binary Search Tree and a target number, return true if there exist two elements in the BST s ...

  10. Linux用于嵌入式

    步骤1:Linux工具和项目布局 每个嵌入式软件设计都从选择合适的工具开始. 工具链是一组连接(或链接)在一起的软件开发工具,它包含诸如GNU编译器集合(GCC).binutils(一组包括连接器.汇 ...