shell指令(三)及makefile
1> 编写脚本,实现文件分类的功能。
编写脚本的过程中,要特别注意路径问题
1.判断用户的家目录($HOME)下是否存在 file_dir 这个目录文件
如果存在,则询问用户是否清空,如果用户输入的是Y,则清空该目录文件
如果用户输入的不是 Y 则不清空,退出脚本(exit)
如果不存在,则新建该目录文件
2.判断用户的家目录($HOME)下是否存在 dir_dir 这个目录文件
如果存在,则询问用户是否清空,如果用户输入的是Y,则清空该目录文件
如果用户输入的不是 Y 则不清空,退出脚本(exit)
如果不存在,则新建该目录文件
3.输入一个指定的路径 (最好是绝对路径)
将该路径下的所有普通文件都拷贝到 file_dir 中
将该路径下的所有目录文件都拷贝到 dir_dir 中
并分别统计操作了多少个目录文件 和 多少个普通文件
#!/bin/bash
if [ -e $HOME/file_dir ]
then
echo "目录存在"
read -p "是否清空(Y/N)" choose
case "$choose" in
[yY][eE][sS]|[yY])
rm -rf "$HOME/$file_dir"/*
echo "清空"
;;
[nN][oO]|[nN])
echo "不清空,退出脚本"
(exit)
;;
esac
else
mkdir "$HOME/file_dir"
echo "已创建目录file_dir"
fi
if [ -e $HOME/dir_dir ]
then
ehco "目录存在"
read -p "已存在,是否清空(Y/N)" choose1
case "$choose1" in
[Y/y][E/e][S/s]|[Y/y])
rm -rf "$HOME/$dir_dir"
echo "已清空目录 $dir_dir"
;;
[nN][oO]|[nN])
echo "不清空,退出脚本"
(exit)
;;
esac
else
mkdir "$HOME/dir_dir"
echo "以创建dir_dir"
fi
echo "请输入一个绝对路径"
read qaz
if [ ! -d "qaz" ]
then
echo "路径不存在,脚本退出"
exit
fi
#计数器
number1=0
number2=0
for item in "$qaz"/*
do
if [ -f "$item" ]
then
cp "$item" "$HOME/$file_dir"
number1=$((number1+1))
elif [ -d "$item" ]
then
cp -r "$item" "$HOME/dir_dir"
number2=$((number2+1))
fi
done
# 输出统计结果
echo "拷贝完成!"
echo "共拷贝了 $number1 个普通文件到 $HOME/$file_dir"
echo "共拷贝了 $number2 个目录文件到 $HOME/$dir_dir"
2> 将makefile的内容好好看看,并且进行编译
3> 将linux_c前面的内容好好复习
思维导图