1.打印乘法表
echo "---------------乘法口诀表-------------------"
i=0
j=0
for ((i=1;i<=9;i++))
{
for ((j=1;j<=i;j++))
{
echo -n "<$i * $j = "$((i * j))"> "
}
echo -e "\n"
}
#2.编程:在家目录下创建两个目录文件file_dir和dir_dir,如果家目录下有这两个文件夹,
#就不需要创建,询问用户是否要对目录清空[Y/N],输入一个文件路径,判断这个文件路径是否存在,
#如果存在,把这个目录下的目录文件复制到dir_dir中,如果是其他文件,复制到file_dir下,
#统计复制的文件和目录文件的个数,并打印出来
#3.编程:在家目录下创建两个目录文件file_dir和dir_dir,如果家目录下有这两个文件夹,
#就不需要创建,询问用户是否要对目录清空[Y/N],输入一个文件路径,判断这个文件路径是否存在,
#如果存在,把这个目录下的目录文件复制到dir_dir中,如果是其他文件,复制到file_dir下,
#统计复制的文件和目录文件的个数,并打印出来
dir1=~/file_dir
dir2=~/dir_dir
yesdir=no
nodir=no
if [ -d $dir1 -o -d $dir2 ]
then
if [ ! -d $dir1 ]
then
yesdir=$dir2
nodir=$dir1
fi
if [ ! -d $dir2 ]
then
yesdir=$dir1
nodir=$dir2
fi
read -p "家目录下存在目录是否要清空目录[Y/N] " p
if [ $p == 'y' -o $p == 'Y' ]
then
if [ $yesdir == "no" ]
then
rm -rf ${dir1}/*
rm -rf ${dir2}/*
else
rm -rf ${yesdir}/*
mkdir $nodir
fi
else
if [ ! $yesdir == "no" ]
then
mkdir $nodir
fi
fi
else
mkdir ~/file_dir ~/dir_dir
fi
read -p "请输入要拷贝文件的路径-> " DIR
file_num=0
dir_num=0
if [ -d $DIR ]
then
dir_arr=(`ls $DIR`)
num=${#dir_arr[@]}
echo "--------------------"
echo "${dir_arr[@]} 共有 $num 个文件"
for val in ${dir_arr[@]}
do
if [ -d "${DIR}/${val}" ]
then
cp -r "${DIR}/$val" $dir2
((dir_num++))
else
cp "${DIR}/$val" $dir1
((file_num++))
fi
done
echo "--------------------"
echo "$dir2 目录下文件共 $dir_num 个"
ls $dir2
echo "--------------------"
echo "$dir1 其他文件共 $file_num 个"
else
echo "你输入的路径不存在."
fi
3.封装一个函数,函数功能实现数组求和arr=(123 456 789 111 12 34. ..)
作业需求:通过shell脚本实现乘法表的打印作业实现过程:作业实现效果:
#!/bin/bash
read -p "请输入一组数据进行求和:" -a arr
echo ${arr[@]}
function add ()
{
local temp=0
for val in $*
do
((temp=temp+$val))
done
echo $temp
}
sum=`add ${arr[*]}`
echo "总计 $sum"
运行结果