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

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

脚本编写,文件名为.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代表,获取执行脚本后面第一个参数

时间: 2024-12-20 12:26:49

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

shell脚本相关笔记

书写一个shell脚本并使之执行的步骤: 1. 打开一个文件,以 #! bin/bash作为开头 2.在文件中写入一些正确可执行的shell语句 3.保存文件 4.更改文件权限,执行文件 一些小技巧: 如果想在系统中添加自己的命令,比如执行自己建好的shell脚本语句这样一条命令 实例: 1.创建文件cd.sh 内容为: #! bin/bash cd xxx/yyy/zzz 2.保存文件 3.执行文件./cd.sh 现在发现并没有能够打开我们想要打开的目录并进去. 原因是shell还有分父she

tar ,cpio打包解压. shell脚本for,while,until循环. rpm包管理,select循环菜单,函数function,yum

tar  tar -cf 路径+文件名字后续.tar  +路径 创建归档压缩 tar cf /testdir/etc.tar /etc/ tar cvf 可以查看解压过程 tar tvf 预览作用 tar xvf 解压文件 tar zcvf /testdir/etc2.tar.gz /etc/ 解压再压缩到指定路径,文件格式 tar jcvf cpio 复制 从或到文件 cpio 命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以".cpio"或者".ta

shell脚本的使用---for循环

shell脚本的循环:重复执行命令 1.for循环 语法 for 变量名称 in 变量值列表 do 命令 done for根据变量值列表中的内容,重复执行命令,直到变量值列中的所有内容都取值完后结束. 取值列表的类型:可以是特定文本文件,命令生成列表 案列: vi user.txt zsan lisi :wq vi useradd_for.sh #!/bin/bash Un=$(cat /root/bin/user.txt) for i in $Un do useradd #i ehco 123

shell脚本相关知识

一. 关于shell shell,一种壳层与命令行界面,是Unix操作系统下传统的用户和计算机的交互界面.第一个用户直接输入命令来执行各种各样的任务. 普通意义上的shell就是可以接受用户输入命令的程序.它之所以被称作shell是因为它隐藏了操作系统低层的细节.同样的Unix下的图形用户界面GNOME和KDE,有时也被叫做"虚拟shell"或"图形shell". 我们Linux操作下的终端,就是关于shell解释行的命令解释,是交互式.但是在我们的终端下进行的命令

Linux学习笔记:bash颜色显示及shell脚本相关

bash的颜色显示规则: ASCII编码对于颜色进行设置: \033 :ctrl键 [:控制字符和颜色代码之间的间隔字符 0m:关闭颜色属性的命令: 1m:对于显示文本字符加粗 4m:为文本字符加下划线标识 5m:使文本字符闪烁 7m:将文本字符的背景色和前景色交换显示: 8m:将文本字符的背景色和前景色设置为相同颜色. 30m-39m:设置文本字符的前景色:38m和39m暂时没用 40m-49m:设置文本字符的背景色:48m和49m暂时没用 一个完整的程序,一般包含四类文件: 二进制文件(可执

shell脚本相关问题

shell:解释执行用户输入命令,逐行解释,也可以批处理很多指令,可将这些指令全部编写到一个脚本文件中,让shell一次执行多条命令,常用的shell(bash,它承担shell这个角色,为shell脚本解释器,为一个可执行的二进制文件) shell的执行过程: 用户在命令行输入命令后,一般情况下Shell会fork子进程并调用exec进行程序替换,让它的孙进程执行该命令,但是Shell的内建命令例外,执行内建命令相当于调用Shell进程中的一个函数,并不创建新的进程.如cd.export.um

Shell脚本之:退出循环

Shell也使用 break 和 continue 来跳出循环. break命令 下面的例子中,脚本进入死循环直至用户输入数字大于5,使用break跳出这个循环. #!/bin/bash while : do echo -n "Input a number between 1 to 5: " read aNum case $aNum in 1|2|3|4|5) echo "Your number is $aNum!" ;; *) echo "You do

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

if判断语句 exit跳出判读语句 不加exit的结果 read -n(不换行) 判断是否输入的是数字 read age[[ $age =~ ^[0-9]+$ ]]if [ $? -ne 0 ]; then echo "你输入的不是一个数字" exit 1fi case判断语句 #!/bin/bashcat <<EOF########################################### 欢迎学习shell编程 #######################

shell脚本的使用---while循环

while循环:重复测试某个条件,只要条件成立反复执行 条件可以是:测试表达式,也可以是布尔值true(条件永远为真)和false(条件永远为假) vi useradd_while.sh  ##将下面脚本改写为新建用户的脚本 #!/bin/bash PRE=stu i=0 while [ $i -le 10 ]; do useradd $PRE$i echo 123123 |passwd --stdin $PRE$i userdel -r $PRE$i i=$(expr $i + 1) let