zoukankan      html  css  js  c++  java
  • Shell 特殊的变量替换

    特殊的变量替换
    ${var}:同$var
    ${var:-value} var未设置或值为null,使用value值作为替换,否则使用var
    ${var:=value} 与${var:-value}一样,只是使用value的同时会赋值给var

    unset var1 
    echo ${var1:="var1 nuset or null one "}
    echo ${var1:="var1 nuset or null two"} #输出one,因为var1已不为null,使用var1
    echo ${var2:-"var2 nuset or null one "}
    echo ${var2:-"var2 nuset or null two "} #输出two,var仍为空

    ${var:+value} var未设置或为null,使用var(即使用null),否则使用value

    ${var:?value} 如果var被设置,使用var,否则,输出value作为错误信息,省略value输出默认错误信息(行号等),终止shell执行,并返回非0
    出口状态,var值不变,可以用于检查参数

    data=${1:?"no arg"} #执行时不带参数会终止下面的echo并显示value作为错误信息
    echo $data

    ${#var} 字符串长度,是数字就是数字长度,${#array}是数组第一个元素的长度.例外情况:${#*}和${#@}是位置参数个数,${#array[*]}和 

    ${#array[@]}是数组元素个数

    ${var#Pattern},${var##Pattern} 从$var变量值前面除去与给定模式匹配的最短或最长部分子串
    ${var%Pattern},${var%%Pattern} 从$var变量值后面除去与给定模式匹配的最短或最长部分子串,${var%Pattern}可用于抽取路径名的目录部分

    var=file.c
    echo ${var%.c} #输出file
  • 相关阅读:
    C#的4个基本技巧
    如何使用 Visual C# 加密和解密文件
    C#中的反射
    C#集成FastDFS断点续传
    NETCORE TimeJob定时任务的使用
    C#使用ActiveMQ实例
    hadoop+hbase适合存储海量小图片吗?
    windows环境下elasticsearch安装教程(超详细)
    C#:C#调用WebService
    .NETCore远程调用
  • 原文地址:https://www.cnblogs.com/FlyCat/p/2841844.html
Copyright © 2011-2022 走看看