每个linux下的PATH中包含的系统变量都有好多路径:
root@wl-MS-7673:/home/wl/桌面/shell# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.5.1/bin
root@wl-MS-7673:/home/wl/桌面/shell#
如果要统计PATH中每一个路径下的文件数量,那么首先要把PATH下的每一个路径提取出来,那么必须使用空格来替换冒号:
root@wl-MS-7673:~# echo $PATH | sed 's/:/ /g'
/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/arm/4.5.1/bin
一旦分离里目录,就能在标准for语句中来遍历每个目录:
for directory in $mypath
do
..............
done
完整代码如下:
root@wl-MS-7673:/home/wl/桌面/shell# cat -n conutfiles.sh
1 mypath=`echo $PATH | sed 's/:/ /g'`
2 count=0
3 for directory in $mypath
4 do
5 check=`ls $directory`
6 for item in $check
7 do
8 count=$[ $count + 1 ]
9 done
10 echo "$directory - $count"
11 count=0
12 done
root@wl-MS-7673:/home/wl/桌面/shell#
运行结果如下:
root@wl-MS-7673:/home/wl/桌面/shell# ./conutfiles.sh
/usr/local/sbin - 0
/usr/local/bin - 0
/usr/sbin - 250
/usr/bin - 1870
/sbin - 182
/bin - 152
/usr/games - 4
/usr/local/arm/4.5.1/bin - 48