shell 循环--在不同的 dir 下输出不连续的 file

#!/bin/bash

read -p "分割的成几个 dir :" dir
read -p "每个 dir 有几个 file :" file
read -p "总共有几个 file :" zong
##判断是否会产生多余的目录或文件
dir_file=`expr $dir \* $file`
dir_1=`expr $dir - 1`
#总个数在 dir * file 与 { dir - 1 } * file 之间才能分配完整
if [ $dir_file -ge $zong ] && [ `expr $dir_1 \* $file` -lt $zong ] ; then
        echo "范围正确"
else
        echo "范围不正确"
fi
file (){
        y=`expr $file - 1`
        j=`expr $x - $y `
        while [ $j -le $zong ] 
        do
                if [ `expr $j % $file` -eq 0 ] ;then
                        echo "    file == $j"
                        break 1
                else
                        echo "    file == $j"
                fi
                let j++
        done
}
for ((i=1;i<=$dir;i++)) 
do
        echo "dir == $i"
        x=`expr $i \* $file`
        file
done

[root@localhost `]# ./zxc.sh 
分割的成几个 dir :2
每个 dir 有几个 file :3
总共有几个 file :7
范围不正确
dir == 1
    file == 1
    file == 2
    file == 3
dir == 2
    file == 4
    file == 5
    file == 6
[root@localhost `]# ./zxc.sh 
分割的成几个 dir :3
每个 dir 有几个 file :2
总共有几个 file :5
范围正确
dir == 1
    file == 1
    file == 2
dir == 2
    file == 3
    file == 4
dir == 3
    file == 5

本文出自 “Dylan的linux生涯” 博客,谢绝转载!

你可能感兴趣的:(shell,而且每个目录不会有重名的文件)