美文网首页
Linux基础学习八

Linux基础学习八

作者: 程序猿小小白 | 来源:发表于2019-02-18 17:48 被阅读0次

    一:exit

    1.exit  数字(退出状态码):退出脚本

    文件测试:

    -e  file:测试文件是否存在

    -f  file:测试文件是否为普通文件

    -d  file:测试指定目录是否为目录

    -r|-w|-x  file:测试当前用户对指定文件是否有读写执行权限

    例:[-e  /etc/initab]

    2.多分支的if语句

    if  条件1;then

            ......

    elif  条件2;then

            ......

    else

            ......

    fi

    3.测试脚本是否有语法错误

    bash  -n  脚本

    bash  -x  脚本:单步执行

    二:bash变量的类型

    1.特殊变量:

    $?:上一条命令的退出状态码

    $#:参数的个数

    $*:参数列表

    $@:参数列表

    2.sed(流编辑器):默认不编辑源文件,仅对模式空间中的数据做处理,将模式空间打印至屏幕

    用法:sed  [选项]  ‘AddressCommand’  file,...

    (1)Address:

    <1>startLine,EndLine   比如:1,100

    $:最后一行

    <2>/模式(正则表达式)/    比如:/^root/

    <3>/模式1/,/模式2/:第一次被模式1匹配到的行开始,至第一次被模式2匹配的行结束,这中间所有的行

    <4>lineNumber:指定的行

    <5>startline,+N:从startline开始,向后N行

    (2)Command:

    d:删除符合条件的行

    p:显示符合条件的行

    a  \"string":在指定的行后面追加新行,内容为string

    i  \string:在指定的行前面添加新行,内容为string

    r  file:将指定的文件的内容添加至符合条件的行处

    w  file:将指定范围内的内容另存至指定的文件中

    s/模式/string/修饰符:查找并替换,默认只替换每行中第一次被模式匹配到的字符串

            修饰符:

                    g:全局替换

                    i:忽略字符大小写

                    &:引用模式匹配整个串

    (3)选项

    -n:静默模式,不再默认显示模式或空间中的内容

    -i:直接修改源文件

    -e:script  -e  script:可以同时执行多个脚本

    -f  文件:通过将AddressCommand写到文件中去执行

    -r:使用扩展正则表达式

    三:实例

    1.删除某文件中开头的#号及后面的空白字符

    sed  -r  's@^#[[:space:]]+@@g'  ./sed_test.txt

    2.删除某文件中以空白字符后面跟#的行中的开头的空白字符及#

    sed  -r  's@^[[:space:]]+#@@g'  ./sed_test.txt

    3.取出一个文件路径的目录名称

    echo  "/etc/rc.d/"  | sed -r  's#^(1.*/)[^/]+/?#\1#g'

    四:字符测试

    ==:测试是否相等

    !=:测试是否不等

    >:大于

    <:小于

    -n  string:测试指定字符串是否为空,空则真

    五:for循环

    for  变量  in  列表;do

            循环体

    done

    如何生成列表:

            1.{1..100}

            `seq  [起始数]  [步长]  结束数`

    相关文章

      网友评论

          本文标题:Linux基础学习八

          本文链接:https://www.haomeiwen.com/subject/mjczeqtx.html