zoukankan      html  css  js  c++  java
  • 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 bbb” : -e 是格式的区分,把里面的 识别出来是换行符

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

    循环打印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代表,获取执行脚本后面第一个参数

  • 相关阅读:
    SQL Server 2005 出现“此数据库没有有效所有者”错误的解决方法
    使用swfupload出现SecurityError Error #2156问题
    读取Excel表
    POJ 1953 (DP)
    POJ 1050 (DP)
    POJ 1276 (DP)
    POJ 1579 (DP)
    HDOJ 4223 (DP)
    POJ 1080 (DP)
    POJ 1458 (DP)
  • 原文地址:https://www.cnblogs.com/hanhan914-wang/p/7291045.html
Copyright © 2011-2022 走看看