关于expr substr方面,expr的索引与一般的编程语言有所不同,如果之前没遇到过类似的情况,一定会踩坑,做个笔记胜过好记性。
举个栗子,看以下的代码:
expr substr "123456789" 3 4
输出的结果为:
起先一开始认为后面的索引值应该是第4个数字到第5个数字之前(如果以0做开始索引的话),但是后面发现根本不是这样,上面案例的expr的索引应该是:
从1做开始索引,第3个数字开始计数,所以是从3开始计算,结尾的索引又是从“3”这个索引重新计算,即:原来的索引值“3”变成了索引值“1”,因此结尾的索引“4”,其实索引了:“3,4,5,6” 这四个索引值。
故:
expr substr "123456789" 3 4
#输出结果为:3456
同样的,再举个栗子 :
expr substr "abed34545le_2%%" 2 5
#输出结果为:bed34