【shell编程】目录文件计数

目录文件计数

我们要实现一个脚本,它会对PATH环境变量中定义的目录里的可执行文件进行计数。

首先,查看一下PATH环境变量

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

PATH中的每个路径由冒号分隔。要获取可在脚本中使用的目录列表,就必须用空格来替换冒号。现在你会发现sed编辑器用一条简单表达式就能完成替换工作。

$ echo $PATH | sed 's/:/ /g'
/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /root/bin

分离出目录之后,你就可以使用标准for语句来遍历每个目录。

mypath=$(echo $PATH | sed 's/:/ /g') 
for directory in $mypath 
do 
... 
done

一旦获得了单个目录,就可以用ls命令来列出每个目录中的文件,并用另一个for语句来遍历每个文件,为文件计数器增值。

这个脚本的最终版本如下。

$ cat countFiles
#!/bin/bash
#count numbers of files in your PATH
mypath=$(echo $PATH | sed 's/:/ /g')
count=0
for directory in $mypath
do
	check=$(ls $directory)
	for item in $check
	do
		count=$[$count+1]
	done
	echo "$directory - $count"
	count=0
done


$ ./countFiles
/usr/local/sbin - 0
/usr/local/bin - 3
/usr/sbin - 480
/usr/bin - 948
ls: cannot access /root/bin: No such file or directory
/root/bin - 0

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值