zoukankan      html  css  js  c++  java
  • shell脚本特殊变量与变量子串相关知识

    一、shell脚本特殊变量

    1、shell中常用特殊位置变量说明:

    $0  获取当前执行的shell脚本的文件名,如果执行脚本包含了路径,那么就包含了脚本路径

    $n  获取当前执行的shell脚本的第n个参数值,n=1-9,表示第1,...,9个参数值,当n大于9时,则用大括号{ } 括起来,如${10},脚本接的参数以空格隔开

    $#  获取当前执行的shell脚本后面接的参数总个数

    $*  获取当前shell脚本所有传参的参数,不加双引号时,与$@的作用相同,加双引号时,如"$*",则表示将所有参数作为单个字符串,如"$1 $2 $3"

    $@   获取当前shell脚本所有传参的参数,不加双引号时,与$*的作用相同,加双引号时,如"$@",则表示将所有参数作为独立的字符串,相当于"$1" "$2" "$3"

    2、shell中常用特殊状态变量说明:

    $?  获取执行上一个指令的执行状态返回值(0为成功,非0为失败)

    $$  获取当前执行的shell脚本的进程号(PID)

    $!  获取上一个在后台工作的进程的进程号(PID)

    $_  获取在此之前执行的命令或脚本的最后一个参数

    二、变量子串相关

    1、变量子串常见操作

    ${parameter}

    返回变量$parameter的内容

    ${#parameter}

    返回变量$parameter内容的长度(按字符),也适用于特殊变量

    ${parameter:offset}

    在变量${parameter}中,从位置offset之后开始提取子串到结尾

    ${parameter:offset:length}

    在变量${parameter}中,从位置offset开始提取长度为length的子串

    ${parameter#word}

    从变量${parameter}开头删除最短匹配的word子串

    ${parameter##word}

    从变量${parameter}开头删除最长匹配的word子串

    ${parameter%word}

    从变量${parameter}结尾删除最短匹配的word子串

    ${parameter%%word}

    从变量${parameter}结尾删除最长匹配的word子串

    ${parameter/pattern/string}

    使用string代替第一个匹配的pattern

    ${parameter//pattern/string}

    使用string代替所有匹配的pattern

    ${parameter:-word}

    如果parameter的变量值为空或未赋值,则会返回word字符串并代替变量的值

    用途:如果变量未定义,则返回备用的值,防止变量为空值或因未定义而导致异常

    ${parameter:=word}

    如果patameter的变量值为空或未赋值,则设置这个变量值为word,并返回其值,位置变量与特殊变量不适用

    用途:基本同上一个${parameter:-word},但变量又额外给patameter变量赋值了

    ${parameter:?word}

    如果parameter的变量值为空或未赋值,那么word字符串将被作为标准错误输出,否则输出变量的值

    用途:用于捕捉由于变量未定义而导致的错误,并退出程序

    ${parameter:+word}

    如果parameter的变量值为空或未赋值,则什么都不做,否则word字符串将替代变量的值

    用途:用于测试变量是否存在,如果paramete变量的值为word,则说明paramete变量有值

  • 相关阅读:
    OnSharedPreferenceChangeListener不被调用原理及解决方案
    自测题的整理(持续更新)
    排序的练习题
    C++各种类型的简单排序大汇总~
    洛谷P1540 机器翻译
    队列
    文件和结构体
    洛谷P1079 Vigenère 密码
    洛谷P1328生活大爆炸版石头剪刀布
    洛谷P1553数字反转升级版
  • 原文地址:https://www.cnblogs.com/hovin/p/11243749.html
Copyright © 2011-2022 走看看