脚本笔记1——${parameter:offset:length}+find

在这里插入图片描述
MOD='echo ${ITEM:1:3}'
一开始看不懂这句命令,通过下面这段解释才看懂:

${parameter:offset:length}

意思是 提取 parameter 这个字符串从第offset个字节右边的字节为起始位置(就是说 offset+1 是起始位置) 连续的length个字节
简而言之,就是要提取parameter中的一段字串。
还是举个例子吧:

先拿你的例子:

i=1234
h=2
echo $ {i:1:$h}

结果是输出:23
分析:取串“1234”的第(1+1)个字节开始连续的2个(h=2)字节组成的字串,即为“23”

其实这个常用于脚本中的取某个路径,例如:

dir=/var/ftp/user/onemter.conf
rootDir=${dir:0:4}
objectFile=${dir:14} #这个写法省略了其中的length,也就是一直到结束。
echo $rootDir
echo $objectFile

输出结果是:
/var
onemter.conf
分析:不用多说了吧,取dir第1个开始连续的4个字节,即/var
$ {parameter:offset}这个省略了length,就是说从(offset+1)开始一直到末尾的字串。

突然想起来,还有个拓展:
假如offset取负值的话,就是从右往左数。
但是不能直接把负值写上,需要加上运算括号。
比如:${i: -1 :3} 这种直接写负值就是错的,因为跟 $ {var:-word}有冲突。
要这样写:${i:((-1)):3} 要加上运算括号,证明这是一个负数。

find / \ (-path /proc -o -path /dev \) -prune -o -user ocdp
1、查找系统中文件大于20k、小于100k的普通文件

# 默认-a可以省略,这就是20k<=文件<=100k,注意英文k为小写字母
find / -type f -size +20k -size -100k

2、查找系统中文件大于100k、小于20k的普通文件

# 其中-o是“或者”的意思,-a是“而且”的意思,-not是相反的意思
find / -type f -size -20k -o -size +100k
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值