zoukankan      html  css  js  c++  java
  • linux中的shell脚本编程


    【1】shell脚本
    1--- shell命令
    2--- 控制语句(新的语法)
    (Shell命令的有序集合)

    【2】创建shell脚本文件
    1--- 1.sh
    2--- chmod 777 1.sh
    3--- 执行

    rw- rw- r--
    110 110 100
    6 6 4

    rwx rwx rwx
    111 111 111
    7 7 7

    【3】变量
    1--- 用户自定义变量
    1、 没有数据类型
    2、 赋值时=两边没有空格
    3、 $提取变量里的内容


    2--- 位置变量
    $0 ... $9 //依次代表命令行参数
    ${10} //两位数的开始需要使用{}

    3--- 预定义变量
    $* $@ //命令行所有的位置参数,除了第一个$0
    $# //命令行所有的参数个数,除了第一个$0
    $$ //PID
    $? //只与上一条shell命令有关
    //上一条shell命令执行状态:成功$? = 0;
    4--- 环境变量
    $HOME /home/linux

    【4】read
    read 从标准输入读入一行, 并依次赋值给后面的变量,多的数据甩给最后一个变量

    【5】expr
    ret=`expr $A + $B * 2`
    echo "ret = $ret"

    支持:+ - * / % ( )
    注意:expr后留有空格。运算符两边留空格。

    【6】test

    必须使用$?承接测试结果:为真$?=0; 为假$?=1。

    1--- 字符串
    = != -z -n
    (相等) (不等) (为空) (不为空)

    2--- 整数
    a -eq b 测试a 与b 是否相等
    a -ne b 测试a 与b 是否不相等
    a -gt b 测试a 是否大于b
    a -ge b 测试a 是否大于等于b
    a -lt b 测试a 是否小于b
    a -le b 测试a 是否小于等于b


    3--- 文件
    1、测文件类型(间接测试文件是否存在)

    b c d - l s p Linux文件类型
    -b -c -d -f -L -S -p shell脚本测试标识


    2、测文件权限

    -r (读权限)
    -w (写权限)
    -x (可执行权限)


    3、其它

    -e name 测试一个文件是否存在
    -s name 测试name 文件是否存在且其长度 不为0
    f1 -nt f2 测试文件f1 是否比文件f2 更新
    f1 -ot f2 测试文件f1 是否比文件f2 更旧


    4--- []
    与测试语句test完全等价。
    注意:中括号与数据需要留有空格。

    5---
    -a //逻辑关系与
    -o //逻辑关系或


    【7】if

    if 表达式
    then
    命令表
    fi

    ************************************************

    if 表达式
    then
    命令表
    else
    命令表
    fi
    ************************************************

    if 表达式
    then
    命令表1
    elif 表达式
    then
    命令表2
    else
    命令表3
    fi

    【8】
    case 变量 in
    模式1)
    命令表1
    ;;
    模式2 | 模式3)
    命令表2
    ;;
    ……
    模式n)
    命令表n
    ;;
    esac


    【9】for

    for 变量名 in 单词表
    do
    命令表
    done

    【10】
    while 命令或表达式
    do
    命令表
    done

    【11】
    break:结束整个循环
    continue:跳出本次循环,继续执行下一次循环
    sleep 2 :睡眠2秒


    【13】

    function_name ( )
    {
    command1
    ……
    commandn
    }

    1--- 函数调用1
    fun 123 hello //fun:函数名
    //123、hello:参数
    $1 ...$n //在函数内部,用于承接函数传参
    $@、$# //在函数内部,所有参数、参数个数


    2--- 函数调用2
    A=`fun 444 beijing` //fun:函数名
    //444、beijing:参数
    echo "$A" //A:存放函数内所有的标准输出


    3--- 返回值
    两种调用方式都用$?承接函数的返回值。

    4--- 函数中的变量
    函数调用1,变量默认为全局的,用local修饰变成局部变量。
    函数调用2,变量默认为局部的。


  • 相关阅读:
    自动化测试之web自动化测试
    unittest框架中读取有特殊符号的配置文件内容的方法-configparser的RawConfigParser类应用
    No matching distribution found for selenium
    python之selenium多窗口切换
    python之selenium玩转鼠标操作(ActionChains)
    python之selenium三种等待方法
    python之selenium元素定位方法
    hadoop零基础系列之一:虚拟机下的Linux集群构建
    MapReduce分布式缓存程序,无法在Windows下的Eclipse中执行问题解决
    协程详解(三)
  • 原文地址:https://www.cnblogs.com/zhangfeionline/p/5910523.html
Copyright © 2011-2022 走看看