码迷,mamicode.com
首页 > 系统相关 > 详细

shell脚本相关关系、浮点、循环

时间:2017-08-05 19:48:54      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:计算   报错   浮点运算   passwd   while   返回值   函数   ping   控制   

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

脚本编写,文件名为.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脚本相关关系、浮点、循环

标签:计算   报错   浮点运算   passwd   while   返回值   函数   ping   控制   

原文地址:http://www.cnblogs.com/hanhan914-wang/p/7291045.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!