作业需求:
在家目录下创建两个目录文件file_dir和dir_dir,如果家目录下有这两个
文件夹,就不需要创建,询问用户是否要对目录清空[Y/N],输入一个文件路径,判断
这个文件路径是否存在,如果存在,把这个目录下的目录文件复制到dir_dir中,如果是其他文件,
复制到file_dir下,统计复制的文件和目录文件的个数,并打印出来
4.封装一个函数,函数功能实现数组求和
arr=(123 456 789 111 12 34。。。)
1. 作业实现过程
#!/bin/bash
if ! [ -e /home/file_dir ] #判断是否存在file_dir文件夹
then
echo file_dir not found,created #提示不存在该文件夹
sudo mkdir /home/file_dir #创建该文件夹
else
read -p "unset file_dir?[Y/N]" jud #提示是否清空文件夹
if [ $jud = Y ] #若输入Y则清空
then
sudo touch /home/file_dir/1.c #添加一个垃圾文件避免清空时报错
sudo rm /home/file_dir/* #利用通配符一次清理所有普通类型文件
ls /home/file_dir #显示该文件夹下是否还有文件
fi
fi
if ! [ -e /home/dir_dir ] #与file_dir同理
then
echo dir_dir not found,created
sudo mkdir /home/dir_dir
else
read -p "unset dir_dir?[Y/N]" jud
if [ $jud = Y ]
then
sudo mkdir /home/dir_dir/1
sudo rm -r /home/dir_dir/*
ls /home/dir_dir
fi
fi
dnum=0;
fnum=0;
read -p "plz put in a absolute path:" jud #提示输入一个绝对路径
if [ -e $jud ] #判断路径是否存在
then
cd $jud #进入该路径内
for fil in `ls` #循环输入该路径内的所有文件
do
if [ -d $fil ] #判断该文件是否为目录文件
then
sudo cp -r $fil
/home/dir_dir/ #若是目录文件则拷贝到家目录下的dir_dir
((dnum++)) #同时计数拷贝了几个目录文件
elif [ -f $fil ] #判断该文件是否为普通文件
then
sudo cp $fil /home/file_dir/ #若是普通文件则拷贝到家目录下的file_dir
((fnum++)) #同时计数拷贝了几个普通文件
fi
done
else
echo "path doesn't exist" #若绝对路径并不存在则提示不存在
fi
echo absolute path contains: #显示绝对路径下有哪些文件
ls $jud
echo file_dir contains: #显示家目录下的file_dir现在有哪些文件
ls /home/file_dir
echo dir_dir contains: #显示家目录下的dir_dir现在有哪些文件
ls /home/dir_dir
echo 复制了 $dnum 个目录 与 $fnum 个文件 #显示程序运行的结果概要
2.作业实现效果