zoukankan      html  css  js  c++  java
  • Linux高级变量

    http://blog.chinaunix.net/uid-27040051-id-3450991.html  

      高级变量

      基本形式

      [1].变量扩展 格式 ${变量名称}

      [2].命令扩展 格式 $(命令)

      [3].算术扩展 格式 $((算术式))

      1.变量扩展

      基本形式:${变量名称}

      变量扩展含义:一种简易的条件判断,对不同的条件赋予变量不同的值替换.它和变量存在与否的关系很大.

      1.1 测试变量是否存在的基本用法

      语法: ${待测变量-默认值}

      说明:若待测变量不存在则符合判断条件,以传回默认值作为处置.

      解析:若待测变量不存在则返回默认值,否则返回变量的值

      实例:

      unset a

      echo ${a-'默认'} #输出为'默认'

      1.2 测试变量不存在或其值为空时传回一个默认值

      语法:${待测变量:-默认值}

      实例:

      a=

      echo ${a:-'默认'} #输出为'默认'

      1.3 测试变量不存在或其值为空给变量赋予一个默认值

      语法:${待测变量:=默认值}

      实例:

      a=

      echo ${a:='默认'}

      echo $a #输出为2行'默认'

      1.4 测试变量不存在或其值为空,输出一个提示信息

      语法:${待测变量:?提示信息}

      实例:

      a=

      echo r={a:?提示信息} #输出"提示信息"

      1.5 测试变量存在且为非空则返回真值

      语法:${待测变量:+真值}

      实例:

      a=hello

      echo ${a:+world} #输出为"world"

      总结:

      符号 作用

      : 判断变量是否为空,若为空则为真

      + 正向,判断变量是否存在且不为空,若存在且不为空则为真

      - 反向,判断变量是否不存在,若不存在则为空

      = 赋值,

      ? 提示信息

      2.取字符串切片,获得字符串长度

      2.1 取字符串切片

      语法:

      [1].${变量:开始的位置索引}

      作用:截取从指定的位置开始到字符串结束的所有字符,开始字符的索引为0

      实例:

      str="hello world"

      echo ${str:6} #输出结果为"world"

      [2].${变量:起始位置:长度}

      作用:截取从指定的起始位置开始的指定长度的字符串。

      实例:

      str="hello world"

      echo ${str:6:2} #输出为"wo"

      2.2 计算字符串长度

      语法:${#变量名称}

      实例:

      str="hello world"

      echo ${#str} #输出结果为11

      3.对比样式

      目的:截取变量值(字符串)的某一个部分

      做法:将符合样式的部分字符串删除或替换

      3.1 由字符串前面开始对比删除最短的相符者

      语法:${待测变量#样式}

      说明:从待测变量的值的左边开始对比,删除最短符合样式的字符串

      实例:

      filename="/usr/sbin/ntpdate"

      echo ${filename#/*/} #显示结果sbin/ntpdate

      3.2 由字符串前面开始对比删除最长的相符者

      语法:${待测变量##样式}

      实例:

      filename="/usr/sbin/ntpdate"

      echo ${filename##/*/} #显示结果ntpdate

      3.3 由字符串后面开始对比删除最短的相符者

      语法:${待测变量%样式}

      实例:

      filename="/usr/sbin/ntpdate"

      echo ${filename%/*} #输出结果/usr/sbin

      3.4 由字符串后面开始对比删除最长的相符者

      语法:${待测变量%%样式}

      实例:

      filename="hello/usr/sbin/ntpdate"

      echo ${filename%%/*} #输出结果hello

      4.替换或删除部分字符串

      4.1 只替换找到的第一个字符串

      语法:${待测变量/样式/替换}

      实例:

      str="hello hello"

      echo ${str/hello/world} #结果为world hello

      4.2 替换找到的所有样式字符串

      语法:${待测变量//样式/替换}

      实例:

      str="hello hello"

      echo ${str/hello/world} #结果为world world

      4.3 删除第一个指定的字符串

      语法:${待测变量/要删除的字符串/}

      实例:

      str="hello hello"

      echo ${str/hello/} #结果为hello

      4.4 删除所有指定的字符串

      语法:${待测变量//要删除的变量/}

      实例:

      str="hello world hello"

      echo ${str//hello/} #输出结果为world

      5.命令扩展

      语法:$(命令)

      实例: time=$(date) 等价 time=`date`

      6.算术扩展

      语法:$((算术))

      实例:

      echo "a=$((5*5))" #结果为a=25

     
  • 相关阅读:
    velocity语法
    使用VS2003创建WEB程序的时候出现"AutoMation服务器不能创建对象"错误
    ASP.NET 2.0 Tips:跨页提交
    Tip #1 – 创建、管理、应用样式表的强大工具(Visual Studio 2008)
    解决ASP.NET2.0和1.1在同一台电脑上不能并行的问题
    Tip #2 - 样式应用工具(style application toolbar)
    利用HttpModuler实现WEB程序同一时间只让一个用户实例登陆
    ASP.NET Tips: 获取插入记录的ID
    通过rsync远程增量备份数据
    array_merge() [function.arraymerge]: Argument #1 is not an array in ……错误的解决办法
  • 原文地址:https://www.cnblogs.com/virusolf/p/5452136.html
Copyright © 2011-2022 走看看