博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】bash 参数展开(Parameter Expansion)
阅读量:6688 次
发布时间:2019-06-25

本文共 911 字,大约阅读时间需要 3 分钟。

转自:

  1. ${
    parameter} 取parameter的值
  2. ${
    parameter:-word} 如果parameter为空,则用word的值做parameter的缺省值
  3. ${
    parameter:=word} 在2的基础上,把word的值赋给parameter
  4. ${
    parameter?=word} 如果parameter为空,word作为错误信息输出。
  5. ${
    parameter+=word} 在parameter不为空的情况下,输出word的值。
  6. ${
    parameter:offset} parameter的从第offset个字符开始的substring
    ${
    parameter:offset:length} parameter的从第offset个字符开始的,长度为length的substring
  7. ${!prefix*} 所有的以prefix开始的变量名的展开,由IFS 分隔(参考
)${!prefix@} ${!name[@]} ${!name[*]}
如果name为一个数组变量,那么结果是该数组的所有下标的列表。如果name不是数组,那么,如果name为空,结果就为空,如果name不为空,结果就为0. ${#
parameter} 取
parameter的长度为值 ${
parameter#word} 最短匹配${
parameter##word} 最长匹配
在这里word是一个模式(pattern), 如果
parameter的开始匹配word模式,那么第一个的结果是最短匹配,第二个的结果是最长匹配 ${
parameter%word} 最短匹配${
parameter%%word} 最长匹配
在这里word也是一个模式,如果
parameter的结尾匹配word模式,那么第一个的结果是最短匹配,第二个的结果是最长匹配 ${
parameter/pattern/string}   ${
parameter//pattern/string}
在这里pattern也是一个模式,
parameter展开后最长匹配的部分被string替换。第一种情况只替换首次匹配,第二种情况替换所有匹配。

转载地址:http://kchao.baihongyu.com/

你可能感兴趣的文章
Linux内核抢占与中断返回【转】
查看>>
Linux 文件操作监控inotify功能及实现原理【转】
查看>>
环形缓冲区-模仿linux kfifo【转】
查看>>
linux arm的存储分布那些事之一
查看>>
Spring下redis的配置
查看>>
vs2010在进行数据架构比较时报'text lines should not be null'错误
查看>>
13th_july_scrapy-splash
查看>>
新浪招聘的图片滚动控制JS效果
查看>>
java 汉字转拼音 PinYin4j
查看>>
C# 操作地址 从内存中读取写入数据(初级)
查看>>
栅格那点儿事(四A)---栅格的显示与渲染
查看>>
win下实现Linux的tab自动补全
查看>>
2017 3月22日
查看>>
机器学习笔记(Washington University)- Clustering Specialization-week five
查看>>
单链表的建立/测长/打印/删除/排序/逆序/寻找中间值
查看>>
网页缓存清除
查看>>
Python 基础09 面向对象的进一步拓展
查看>>
JDBC
查看>>
python中的句柄操作
查看>>
引进复数求高阶导数
查看>>