Linux shell编程(二)

摘要

查看指定的文件夹下的个文件属性以及输出文件和文件夹的总数量

程序设计

  1. 首先需要判断没有变量输入的情况,这样的情况无法正常操作。
  2. 判断输入的变量是否为合理的路径(文件夹)名。
  3. 将指定目录下的文件进行遍历,文件则输出文件,文件夹则输出文件夹。
  4. 定义两个变量分别记录文件和文件夹的数量。

主要函数

函数(指令)形式用法
=A=0直接对A变量进行赋值(注意不能有空格
forfor i in A在A中进行遍历,i为每一个变量
letlet A=$A+1让变量A进行自加1
*-代表当前目录下所有文件及文件夹
-f-f file判断后面参数是否为文件
{}{$A}A变量在字符串中进行输出

注:部分代码出现的指令在Linux shell编程(一)中已经列出,这里已省略。

具体操作过程及截图

  • 实验环境进行测试 :Alt
    建立的homework2文件夹下保存了两个文件夹find1,find2 和shell脚本 finder的sh 的脚本执行代码。find1文件夹下共有五个文件和两个文件夹,find2文件夹下共有三个文件夹。下面对两个文件夹内文件进行清数。
  • 运行函数脚本(授予权限):
    Alt

运行shell脚本后,首先对find1文件夹下的文件进行了清数,与我们实验环境中预先存放的文件和文件夹数量稳和。

具体代码

#!/bin/bash

#查看指定文件夹下文件属性以及返回下一层目录的文件和文件夹数量

#检查输入的参数是否有效
#输入的参数为零
if [ $# -ne 1 ]
then
	echo "usage:$0<directory>"
	exit
fi	

#输入的参数不是文件夹
if [ ! -d $1 ]
then
	echo "$1 is not a directory"
	exit
fi

#展开指定文件夹
cd $1

#赋值a,b保存文件和文件夹的数量
a=0
b=0

#遍历文件
for i in *
do
	if [ -f $i ]
	then
		let a=$a+1
		echo "$i is a file"
	else
		if [ -d $i ]
		then
			let b=$b+1
			echo "$i is a directory"
		fi
	fi
done

echo "The directory have {$a} files"
echo "The directory have {$b} directories"
# end of finder

注:以上思路均来源于网上。文章目的只是为了自己学习总结回顾,欢迎指出错误,相互学习。如有冒犯,请联系删除,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值