将一堆命令放在脚本里变成可执行脚本执行;

脚本编写,文件名为.sh,获取hostname的主机名

系统变量:

Env:查看系统变量

Set :打印所有变量可以和grep和用

Export path:定义全局变量path

将内存中真实的使用量获取到:

mem_used=`free | awk 'NR==3{print $3}'`

Echo $mem_use

Man test :查看关系运算符,test相当于[]

关系运算:

大于号(>)  -gt

小于-lt

大于等于-ge

小于等于-le

等于-eq

不等于–ne

&&   -a

||   -o

Echo $?判断上个计算是否成立0为成立,1为不成立

赋值运算符:

Expr 1 + 2 计算器

浮点运算:

先安装bc软件包

Echo ‘scale=2;30/1000’ |bc–l   :scale=2 为保留两位小数  30除以1000

统计当前内存使用率:

Cut –d. f2  :截取点号后面2位数

目录测试

-d  测试目录是否存在

-e  文件存在

-f  文件存在,并是普通文件

-h  文件存在,并且是个连接文件

-w 文件存在,并对当前用户对文件有写权限

-r文件存在,并对当前用户对文件有读权限

-s 文件存在,并且是一个非空文件

字符串测试:

-z 空字符串

-n 非空字符串

!= 两个字符串不相等

= 两个字符串相等

If语句:

写一个脚本,执行该脚本

Var=’/etc/passwd’判断这个var是否是普通文件,是否是block文件,是否是目录

让用户输入路径:

命令后面带参数,文件里面的$1 对应的就是脚本后面的第一个参数,以空格为分割符,其他值以此类推:

向脚本传递参数:

$0取的文件名

$$ 取的这个进程的pid

$*所有脚本后面跟的参数值

$#一共11个值

$?

写脚本判断nginx是否存活,如果死了启动它:

脚本具体如下:

While循环:

While :  有冒号永远为真

下面会形成死循环:

实时刷新free的结果:

Echo –e “aaa\nbbb” : -e 是格式的区分,把里面的\n识别出来是换行符

下面的脚本实现三个值互换:

循环打印10个数,从1到10:

Exit 代表退出整个程序

循环输入用户名密码,直到输入正确的后退出:

Breake跳出本层循环,即跳出whiel循环

Contiune跳出本次循环

循环里面加循环:

如果用户名或密码输入非法(即非空),需要做判断:

-z 空字符串

-a 与

-o 或

|| 或

&&与

$cmd可以添加””这样形成一个整体,不加的话输入值带空格或两个值时会报错

打印1到100的数;1..100  就是1到100

打印a到z的值:

取ls的命令结果:`ls /boot`

每次取`ls /boot`结果给i

写脚本检测一个ip是否被占用:

直接ping一下,不同就是没人用

Ping –c1  ip :  -c1就是只ping一次

$? 判断上条命令是否成功,成功为0

>将左边的结果全部定向到右边的文件中 /dev/null这个是个黑洞文件,把不用的直接放里面就可以;

Case语法:

函数:

定义函数:每个命令后都要加分号

里面的abc为函数名,下载下面几十直接调用

可以利用函数编写安装软件命令和启动命令

Return 为返回值,可以人为控制

执行完脚本后使用下面的可以把返回值打印出来:

脚本里面$1代表,获取执行脚本后面第一个参数

shell脚本相关关系、浮点、循环的更多相关文章

  1. linux shell脚本相关知识

    最近的项目中,有一个编写linux shell脚本的任务.由于之前不是很熟悉,在这个过程中遇到了很多困难,查找了很多资料,也收获了很多.下面是linux shell脚本中常用的知识总结. 1基础语法 ...

  2. shell脚本——作业二(循环作业)

    1.通过位置变量创建linux系统账户及密码 $1 是执行脚本的第一个参数,$2 是执行脚本的第二个参数 #!/bin/bash #创建用户与密码 declare -i c=0 if [ -z $1 ...

  3. 随笔记录 shell脚本相关内容 2019-8-26

    字符串截取: 假设变量为var=http://www.hao.com/123.htm1. # 号截取,删除左边字符,保留右边字符.echo ${var#*//}其中 var 是变量名,# 号是运算符, ...

  4. shell脚本判断语句和循环语句

    if判断语句 exit跳出判读语句 不加exit的结果 read -n(不换行) 判断是否输入的是数字 read age[[ $age =~ ^[0-9]+$ ]]if [ $? -ne 0 ]; t ...

  5. Shell脚本之:退出循环

    Shell也使用 break 和 continue 来跳出循环. break命令 下面的例子中,脚本进入死循环直至用户输入数字大于5,使用break跳出这个循环. #!/bin/bash while ...

  6. Shell脚本之七 选择、循环结构

    一.if else if 语法格式 if condition then command1 command2 ... commandN fi 写成一行(适用于终端命令提示符): if [ $(ps -e ...

  7. Shell脚本相关

    cat /proc/17616/cmdline 17616代表进程号 用这个可以完整打印出当前的进程的全名 当前shell的进程号.你可以使用ps -A 看你自己shell 的pid.是内置变量. $ ...

  8. shell脚本之for 列表循环

    作用:对列表进行循环处理 语法: for var in list do commands done 案例: 1.读取列表中的值 2.读取列表中的复杂值 异常案例:未显示出“'”单引号,使语句出现异常 ...

  9. LINUX shell脚本相关

    调试脚本 测试脚本语法:bash -n file.sh 查看脚本每一步执行情况:bash -x file.sh   位置变量:$1,$2,... 特殊变量:           %?:最后一个命令的执 ...

随机推荐

  1. HTTP协议-get请求与post请求的区别

    区别: 参数:get通过url进行传递:post放在request body中 长度:get请求在url的长度是有限制的:而post没有(其实这个限制是来自浏览器和web服务器对url的限制,并不是h ...

  2. hdu 5810:Balls and Boxes(期望)

    题目链接 这题似乎就是纯概率论.. E(V)=D(X_i)=npq (p=1/m,p+q=1) #include<bits/stdc++.h> using namespace std; t ...

  3. css3的三大特性以及移动端说明

    css3的三大特性: 一.层叠性 所谓层叠性是指多种CSS样式的叠加. 是浏览器处理冲突的一个能力,如果一个属性通过两个相同选择器设置到同一个元素上,那么这个时候一个属性就会将另一个属性层叠掉 比如先 ...

  4. 如何在pycharm上创建分支,并且把它推送到远端仓库

    注意创建的分支名 ,如果远端仓库没有pycharm中创建的分支名时  此时远端仓库会创建一个分支出来 这是就方便了代码的管理 具体步骤如下图操作步骤 推送上去搞定

  5. Ext js-02 -官方API文档使用

    官方API文档地址: http://docs.sencha.com/extjs/6.5.3/classic/Ext.html 打开网页如下: 1.选择所使用的Ext js版本,后面offline do ...

  6. 替换OSD操作的优化与分析

    http://www.zphj1987.com/2016/09/19/%E6%9B%BF%E6%8D%A2OSD%E6%93%8D%E4%BD%9C%E7%9A%84%E4%BC%98%E5%8C%9 ...

  7. vue使用中的问题总结

    1.根实例问题 vue中的根实例可以有多个,每个根实例可以挂载DOM元素,只有在挂载的DOM元素上才可以使用该实例中的数据方法等. 并且,组件只有在某一个根实例所挂载的DOM元素上才可以使用. 2.组 ...

  8. 【Java】字符串转json

    import org.json.JSONObject; JSONObject jo = new JSONObject(new String(需要转换的字符串));

  9. StrictMode 严格模式

    StrictMode: 帮助程序员避免在主线程上执行耗时操作: 启动级别: 1. 启动线程级别:   setThreadPolicy() 2. 启动应用级别 :  setVmPolicy() —— 对 ...

  10. SSM + MySQL批量删除操作

    最近项目中有个购物车功能需要能够选中商品,然后批量删除的操作,也可以单个删除,其实代码很简单就能实现. 这里需要注意的就是你前端是怎么传值的,我这里采用的数组的形式,用 ‘,’隔开. 然后控制层代码如 ...