zoukankan      html  css  js  c++  java
  • shell 运算符

    shell中的运算符可能一些人会感到很陌生,我们来了解一下吧

    替换运算符

    ${varname:-word}

    如果varname存在且非null,返回varname;否则返回word

    用途:如果变量未定义,返回默认值

    ${varname:=word}

    如果varname存在且非null,返回varname;否则设置它的值为word,并返回

    用途:如果变量未定义,则设置默认值并返回

    ${varname:?word}

    如果varname存在且非null,返回varname;否则显示varname=word,并且退出当前的命令或脚本

    省略word会出现默认信息:parameter null or not set

    用途:为了捕捉由于变量未定义而导致的错误

    ${varname:+word}

    如果varname存在且非null,返回word;否则返回null

    用途:为了测试变量的存在

    以上这四个运算符内的冒号(:)都是可选的,如果忽略冒号,则将每个定义里面的“存在且非null”改为存在,也就是,仅用于测试变量是否存在

    模式匹配运算符

    ${variable#pattern}

    如果模式匹配于变量值的开头处,则删除匹配的最短部分,并返回剩下的部分

    path=/home/tolstoy/mem/long.file.name

    那么${path#/*/}=tolstoy/mem/long.file.name

    ${variable##pattern}

    如果模式匹配于变量值的开头处,则删除匹配的最长部分,并返回剩下的部分

    例如${path##/*/}=long.file.name

    ${variable%pattern}

    如果模式匹配于变量值的结尾处,则删除匹配的最短部分,并返回剩下的部分

    例如${path%.*}=/home/tolstoy/mem/long.file

    ${variable%%pattern}

    如果模式匹配于变量值的结尾处,则删除匹配的最长部分,并返回剩下的部分

    例如${path%.*}=/home/tolstoy/mem/long

    字符串长度运算符

    $ {#variable}

    返回 $variable 值里的字符长度

  • 相关阅读:
    平衡二叉查找树——AVL树
    Java 输入输出(一)——流
    C++获取系统当前时间(精确到微秒)
    C++ STL中哈希表 hash_map介绍
    ubuntu下面编译libuv
    linux使用select实现精确定时器详解
    .dll,.lib,.def 和 .exp文件
    没有core文件时候如何定位segment/core dump
    C++中string、char *、char[]的转换
    map自定义结构体作为key
  • 原文地址:https://www.cnblogs.com/qwj-sysu/p/5002797.html
Copyright © 2011-2022 走看看