鸟哥linux第十二章-shell script笔记

本文详细介绍了Shell脚本的基础知识,包括正则表达式、管道命令、数据流重定向等批处理技术。深入探讨了Shell脚本的执行原理、变量声明、数值运算、流程控制、函数定义及循环结构,同时提供了调试技巧。
  1. 它是program,使用纯文本文件,利用shell。 功能是搭配正则表达式,管道命令,数据流重定向实现批处理文件。

  2. 使用\扩展下一行。#表注释。

  3. shell.sh执行必须具有rx权限

  4. 以bash来执行即bash shell.sh或sh shell.sh

  5. ./shell.sh表示在当前目录下执行。也可以放在/home/dmsai/bin/下面,因为家目录下的~/bin在centos中被默认设置在环境变量中,若shell.sh在~/bin内且具有rx的权限,则可直接输入shell.sh执行。因为先执行环境变量,所以若shell.sh不在环境变量中则要用./shell.sh,因为在环境变量中没有,若在环境变量中,即可直接shell.sh执行。

  6. #!/bin/bash是在声明脚本使用的shell名称。

  7. 脚本文件头注释:

    #!/bin/bash
    #Program:
    #History:
    #2018/12/17     root       First release
    PATH=
    export PATH
    
  8. declare可以声明变量类型,$((计算式))进行数值运算。

  9. source可以让子进程的操作在父进程中生效。

  10. test -e filename 测试filename存在否。

  11. []表判断,例如:[ "$a" == "$b" ],中括号内每个组件之间要有空格,常量变量要用双引号括起来。

  12. shell脚本的默认变量:$0表示脚本文件名,$1表示文件名后跟的第一个参数。

  13. $#4表示有四个参数。

  14. shift2表示拿掉前面的两个参数,造成参数变量号码偏移。

  15. 条件判断式

    if ; then
    fi

    if ; then
    else
    fi

    if ; then
    elif ; then
    else
    fi

  16. 利用case…esac判断
    以case开头,以esac结尾,程序段以两个分号;;结束,*在最后表示如果上面没有结果则告诉用户的信息。

    case ${a} in
    “ddddddd”)
    echo
    ;;
    “dfffff”)
    echo
    ;;
    *)
    ;;
    esac

  17. function(函数)参照python
    function fname () {
    程序段
    }

  18. loop(循环)
    while [ condition ]
    do
    循环段落
    done

    until [ condition ]
    do
    循环段落
    done

  19. for…do…done(固定循环)
    for var in con1 con2 con3 …
    do
    程序段
    done

    for (( 初始值; 限制值; 复制运算 ))
    do
    程序段
    done

  20. shell脚本的调试
    sh -n shripts.sh 不执行脚本,仅查询语法问题。
    sh -v shripts.sh 在执行脚本前,将文件内容输出到屏幕上。
    sh -x shripts.sh 将使用到的脚本显示到屏幕上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值