• Linux Shell脚本编程基础


    1. 脚本是一个包含一系列命令序列的文本文件,当运行这个脚本文件时,文件中包含的命令序列将得到执行。

    2. 脚本主要由两部分组成:脚本解释器和命令序列

    注:#!/bin/bash 指明脚本解释器为Bash Shell

    3. Shell脚本允许用户设置和使用自己的变量,变量可以使数字或者字符串,用户无需指定其类型,也无需在使用前定义。

    注:(1)定义时无需加"$"

    (2)赋值“=”左右不能有空格

    (3)注释用“#”

    4. 同C程序一样,Shell脚本也可以使用命令行参数

    (1)$#:传入脚本的命令行参数个数

    (2)$*:所有命令行参数值,在各个参数值之间留有空格

    (3)$0:第0个命令行参数,命令行本身(Shell文件名)

    (4)$1:第1个命令行参数

    5. Shell脚本提供了一个专门的命令expr来计算数学表达式。例如expr 5+1,当要把计算的结果赋值给其他变量时,还需要用反引号:·`expr 5+1`

    6. 条件比较(操作符两边必须有空格)

    (1)比较

    (2)条件

    ① -r file:文件对当前用户可以读取

    ② -w file:文件对当前用户可以写入

    ③-x file:文件对当前用户可以执行

    ④ -f file:文件是普通文件

    ⑤ -d file:文件是一个目录

    ⑥ -c file:文件是字符设备文件

    ⑦ -b file:文件是块设备文件

    ⑧ -s file:文件大小不为0

    ⑨ -t file:文件的描述符指定的设备为终端

    ⑩ -e file:文件已经存在

    ⑪ -a:与

    ⑫ -o:或

    ⑬ !:非

    7. Shell脚本中最基本的流程控制语句就是if-then,使用格式如下

    if [ condition ]

    then

      commands

    else

      commands

    fi

    注:方括号左右两边必须有空格

    8. Shell脚本提供了for命令,用于创建类似C语言编程中for语句一样的循环,使用格式如下

    for var in list

    do

      commands

    done

    9. Shell脚本提供了while命令,用于创建类似C语言编程中while语句一样的循环,使用格式如下

    while condition

    do

      commands

    done

    10. Shell脚本提供了case命令,用于创建类似C语言编程中switch语句一样的分支控制,使用格式如下

    case var in

      mode1) command1;command2;;

      mode2) command1;command2;;

    esac

    (1)示例代码

    #!/bin/sh -e
    
    while [ $# -gt 0 ] ; do
        echo "----argv[1] = $1" 
        case "$1" in
        --) shift ; break ;;
        -a) shift ; APPEND=yes ;;
        -n) shift ; BOARD_NAME=$1 ; shift ;;
        *)  break ;;
        esac
        echo "argv[1] = $1" 
    done
    echo "APPEND=${APPEND}"
    echo "BOARD_NAME=${BOARD_NAME}"

    (2)Mode支持正则表达式,可以用以下字符

      *    任意字符串

      ?    任意字符

      [abc]  a,b,c三个字符其中之一

      [a-n]  从a到n的任一字符

      |    多重选择

    11. Sed(Stream Editor):流式编辑器,又名行编辑器,每次只编辑一行

    12. Awk是一个强大的文本分析工具

  • 相关阅读:
    JDK5后的特性整理
    正向代理与反向代理的区别与异同
    我所用过的nginx的功能
    网页端消息推送之推与拉
    在一个py脚本中调用另外一个py脚本中的类或函数
    import与from ... import ...的区别
    python 读取文件
    shell中的特殊变量IFS
    shell 重定向以及文件描述符
    shell下读取文件数据
  • 原文地址:https://www.cnblogs.com/wulei0630/p/10686814.html
Copyright © 2020-2023  润新知