shell 脚本

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"
 运行结果

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值