zoukankan      html  css  js  c++  java
  • shell基础

    shell基础


    程序规范

    首先说明使用的是什么shell,如:#!/bin/bash    (#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径,比如#!/bin/python2.7  和 #!/bin/python3)

    注明该脚本的内容功能、操作系统版本信息、文件创建者等


    运行方式

    bash<文件名

    bash文件名

    .文件名(不创建子进程)

    ./文件名(需要可执行权限)

    通过在PATH变量添加路径


    常用命令

    echo

    echo要使用转义字符时需要加上-e

    如echo-e “hahaha hahaha”

    输出有颜色、粗体的字体

    1.有颜色echo -e "33[字背景颜色;字体颜色m 字符串 33[0m"

    33[ ; m …… 33[0m 指明颜色的开始和结束,如果不指明结束,后边所有的都是那个颜色格式

    字背景颜色范围:40----49 
    40:黑 
    41:深红 
    42:绿 
    43:黄色 
    44:蓝色 
    45:紫色 
    46:深绿 
    47:白色
    字体颜色:30-----------39 
    30:黑 
    31:红 
    32:绿 
    33:黄 
    34:蓝色 
    35:紫色 
    36:深绿 
    37:白色

    2.加粗

    33[0m 关闭所有属性 
    33[1m 设置高亮度 (就是加粗)
    33[4m 下划线

    响铃:[Ctrl+G]<=>07

    清屏:[Ctrl+L]


    read

    读取用户输入,并赋值给用户自定义变量

    注:从输入设备读取1行,第1个字符串存入第1个变量,第2个字符串存入第2个变量……如果输入字符串个数多馀定义的变量,则所有剩馀字符串赋值给最后1个变量


    test(测试字符串、数值、文件属性)

    test命令测试的条件成立时,命令返回值为真(0),否则返回值为假(非0).

     

    可以使用逻辑运算符:-a-o ! (与、或、非)

    if [ -f $filename ]       中括号和里边的内容之间至少一个空格

    [jcuan@localhostunix]$ if [ 1 ];then echo "hahahha"; fi

    hahahha

    [jcuan@localhostunix]$ if [ 0 ];then echo "hahahha"; fi

    hahahha

    因为写在一行,所以要用分号

    注意!!中括号就是代表test!按照上边这么写是完全没有意义的

    数值判断

    -eq 数值1与数值2是否相等

    -ne 数值1与数值2是否不相等

    -gt 数值1是否大于数值2

    -ge 数值1是否大于或等于数值2

    -lt 数值1是否小于数值2

    -le 数值1是否小于或等于数值2

    字符串的比较  
    =    字符串1与字符串2是否相同  
    != 字符串1与字符串2是否不相同  
    -n    字符串是否包含字符(长度非0)  
    -z    字符串是否为空串(长度为0)  
    文件属性  
    -r    文件file是否存在并且可读  
    -w    文件file是否存在并可写
    -s    文件file是否存在并且长度非0  
    -f    文件file是否存在并且不是目录文件  
    -d    文件file是否存在并且是一个目录文件


    expr

    用于计算表达式的值

    只能是整数注意*、%需要转义

    用于数字和非数字参数的关系运算符

    如果是数字,则比较数值

    如果是非数字的,则比较ASCII值

    比较结果为真,expr显示1;结果为假,expr显示为0

    关系运算符:等于(=)、不等于(!=)、小于(<)、小于等于(<=)、大于(>)、大于等于(>=)

    示例:

    [root@localhostmjliu]# expr Gabe = gabe

    0

    [root@localhostmjliu]# expr Gabe = Gabe

    1

    [root@localhostmjliu]# expr 5 < a

    1


    exit终止shell程序的执行

    格式:exit n            #n是退出状态(返回码),如果没有n,则返回执行的最后一条命令的退出值


    结构

    if [ 表达式]

    then 命令表

    fi


    if [ 表达式1]

    then命令表1

    elif [ 表达式2]

    then命令表2

    else 命令表3

    fi


    case 只能检测字符串变量

    case 值in

    模式1)
        命令1;;

    模式2)
        命令2;;

    模式3)
        命令3;;

    esac

    最后一个模式常写为字符*表示所有其它模式


    for变量

    in 变量列表

    do
        命令

    done


    while[ 条件]

    do
        命令

    done


    break语句

    从包含该语句的最近一层循环中跳出一层, break n 则跳出n层;


    函数

    函数在调用前必须先定义,即在顺序上函数说明必须放在调用程序的前面。

    调用程序可传递参数给函数,函数可用return语句把运行结果返回给调用程序。

    函数只在当前shell中起作用,不能输出到子shell中


    函数格式:

    function_name( )

    {

    command1

    ……

    commandn

    }

    函数调用格式:

    function_name arg1 arg2 …


    shell调试

    格式:bash [-nvx] scripts

    -n:不执行脚本,查询脚本内的语法,若有错误则列出

    -v:在执行脚本之前,先将脚本的内容显示在屏幕上

    -x:将用到的脚本内容显示在屏幕上,与-v稍微不同


  • 相关阅读:
    CentOS7基础优化与常用配置
    MHA+binlogserver+VIP+sendreport 高可用架构
    GTID主从复制
    主从复制故障处理
    主从复制
    mysql 配置文件
    通用二进制安装mysql-5.7.28(无坑)
    css动画 文字闪烁效果
    cmd命令提示符大全(干货)
    JS实现手机摇一摇功能
  • 原文地址:https://www.cnblogs.com/jcuan/p/5558464.html
Copyright © 2011-2022 走看看