Preface
玩物丧志,玩物丧志。
一个端午的假期,还真的是让我休闲到了极点,呐,很多时候我真的在想,是不是一个人日常生活中存在太多诱惑,所以才在脑子里塞满了杂七杂八的东西,最后导致自己不能很好地思考问题。
当一个小孩,不能抵制住诱惑,别人都会指责他,让他把错误全部归结到自己身上,比如说他意志力不够强啊,等等。但是你要知道,所有游戏或者电商公司都在竭尽全力去分析人类的心理,如果都做到这个程度了,你们还不上套,那说明别人这个钱白花了= =
Content
11.2.8 变量内容的删除,替代与替换
渐渐有点明白了,对于命令,很多其实就是对于字符串的处理,而且一般为顺序的处理形式。所以对于命令的设置和定义,必须要避免歧义。
变量设置方式 | 说明 |
---|---|
${变量#关键字} | 若变量内容从头开始的数据符合“关键字”,则将符合的最短数据删除 |
${变量#关键字} | 若变量内容从头开始的数据符合“关键字”,则将符合的最长数据删除 |
${变量%关键字} | 若变量内容从尾向前的数据符合“关键字”,则将符合的最短数据删除 |
${变量%%关键字} | 若变量内容从尾向前的数据符合“关键字”,则将符合的最长数据删除 |
${变量/旧关键字/新关键字} | 若变量内容符合“旧关键字”,则第一个旧字符串会被新字符串替换 |
${变量//旧关键字/新关键字} | 若变量内容符合“旧关键字”,则所有旧字符串会被新字符串替换 |
对于变量的设置和输出
变量设置方式 | str没有设置 | str为空字符串 | str已经设置为非空字符串 |
---|---|---|---|
var=${str-expr} | var=expr | var=$str | var=$str |
var=${str:-expr} | var=expr | var=expr | var=$str |
var=${str+expr} | var= | var=expr | var=expr |
var=${str:+expr} | var= | var= | var=expr |
var=${str=expr} | str=expr,var=expr | str不变,var=$str | str不变,var=$str |
var=${str:=expr} | str=expr,var=expr | str=expr,var=expr | str不变,var=$str |
var=${str?expr} | expr输出至stderr | var=$str | var=$str |
var=${str:?expr} | expr输出至stderr | expr输出至stderr | var=$str |
其实今天虽然偷懒了,但是至少把11.4之前的内容都看完了。
前面这个表格虽然看起来很清晰,但是还是希望花点时间找找规律。《鸟哥的Linux私房菜》这本书感觉在这里把情况搞复杂了,这里我这样整理感觉更清晰。
- “:”符号对str没有设置和str已经设置为非空字符串的情况并没有影响
- 所有符号的设定都是按照左下和右上对半分开的,所以这样理解起来也很方便
Daily Task
终有一天,你会老去,而我,将会加冕为王。