美文网首页
2018-04-24 shell脚本

2018-04-24 shell脚本

作者: Mz楓 | 来源:发表于2018-04-24 20:28 被阅读0次

    shell脚本利用shell功能写的纯文本文件,将shell语法和命令写在里面,搭配正则表达式、管道命令与数据流重定向等。不需要编译既可执行。最简单的功能就是整合一些连续命令,将它写入script中,用script执行一连串的命令输入。但是shell script用的是外部命令和一些bash shell的一些默认工具,调用外部函数库,所以速度慢,占用cpu较多。
    shell脚本中的path只是临时的环境变量,只作用于脚本执行的过程中。具体定义:
    PATH=/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin 定义临时变量
    export PATH 将临时变量转换为临时环境变量

    shell script执行方式区别
    1、直接命令执行的方式
    直接命令执行或者用bash或sh执行脚本,其实script是在子进程内执行,当子进程完成后,子进程的变量和操作不会传回父进程。 sh sh02.sh
    2、用source 执行脚本,在父进程中执行 source sh02.sh

    利用test命令检测系统上某些文件或者相关的属性
    文件属性操作
    test命令可以判断文件是否存在,以及侦测各种的文件属性。
    test -e filenanme
    命令参数 含义
    -b file file存在,并且为块特殊文件,则为真
    -c file file存在,并且为字符特殊文件,则为真
    -d file file存在,并且为目录,则为真
    -e file file存在,则为真
    -f file file存在,并且为常规文件,则为真
    -g file file存在,并且设置了文件的 SGID 位,则为真
    -G file file存在,并且为组所有,则为真
    -r file file存在,并且有读权限,则为真
    -s file file存在,并且长度大于0,则为真
    -w file file存在,并且有写权限,则为真
    -x file file存在,并且有执行权限,则为真
    算术比较运算
    在shell中,test命令可以比较两个数字的大小,相等等。

    操作符 含义
    num1 -eq num2 两个数字相等,则为真
    num1 -ge num2 num1大于等于num2,则为真
    num1 -gt num2 num1大于num2,则为真
    num1 -le num2 num1小于等于num2,则为真
    num1 -lt num2 num1小于num2,则为真
    num1 -ne num2 num1不等于num2,则为真
    逻辑运算
    test可以进行基本的逻辑运算

    表达式 含义
    test EXPRESSION EXPRESSION表达式为真,则结果为真
    test ! EXPRESSION EXPRESSION表达式为假,则结果为真
    test EXPRESSION1 -a EXPRESSION2 逻辑与,EXPRESSION1与EXPRESSION2都为真,结果为真
    test EXPRESSION1 -o EXPRESSION2 逻辑或,EXPRESSION1与EXPRESSION2有一个为真,结果为真
    判断字符串

    test –n 字符串 #字符串的长度非零
    test –z 字符串 #字符串的长度是否为零
    test 字符串1=字符串2 #字符串是否相等,若相等返回true
    test 字符串1!=字符串2 #字符串是否不等,若不等反悔false

    默认参数
    $# 代表后街的参数个数
    $@ 代表参数进行罗列,$1 $2 $3这样
    $* 类似$@
    用shift对参数进行偏移
    shift 3#
    支持if then fi 条件判断语句
    if []&&[]||[]; then
    echo "OK"
    exit 0
    fi 结束标志

    if []; then
    echo "OK"
    else
    XXXXXXX
    fi 结束标志

    if []; then
    echo "OK"
    elif []; then
    echo "elif"
    else
    echo "esle"
    fi 结束标志

    支持case 参数 in
    “XXX” )
    echo "do what you want"
    ;;
    esac 结束符

    while [condition]
    do
    程序体
    done 结束符

    until [conditon]
    do
    程序体
    done

    for 固定形式
    for var in 固定值1 固定值2 固定值3
    do
    程序体
    done

    for ((s初始值;限制值;执行步长))
    do
    程序体
    done

    shell script追踪和调试
    sh [var] shellname.sh
    var=
    -n 不执行,仅查语法错误
    -v 执行前,将script内容打印出来
    -x 将执行过程全部显示出来 墙裂建议用这个进行错误调试

    相关文章

      网友评论

          本文标题:2018-04-24 shell脚本

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