Chinaunix首页 | 论坛 | 博客
  • 博客访问: 126738
  • 博文数量: 20
  • 博客积分: 536
  • 博客等级: 中士
  • 技术积分: 295
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-14 11:04
文章分类
文章存档

2013年(4)

2012年(16)

我的朋友

分类: 网络与安全

2012-05-09 15:56:41

一个朋友提的shell脚本需求。写完了一直没整理。

需求:

1到100,每当数到12个数去掉一个(可以理解成计数器,第到12重置)。直到最后只省下一个数。比如第一次,12、24、36、48、60、72、84、96被去掉。到100时,计数器为4,那么,轮到1时,计数器为5。

脚本如下:

对shell数组不太熟悉的可以参考下。

简要说明如下

LIST数组初始为1到100

count为计数器,array_count是数组下标,用于逢12的时候删除数组内的值

modify函数的作用是踢出逢12的数组内容。

while循环就是取只剩到最后的那个数

#!/bin/bash
count=0
LIST=(`seq 1 100`)
modify(){
        array_count=0
        for i in ${LIST[@]} ;do
                ((count++))
                if [ $count -eq 12 ];then
                        count=0
                        unset LIST[$array_count]
                fi
                ((array_count++))
        done
        LIST=(${LIST[*]})
}
# script start
while true;do
        len=${#LIST[@]}
        if [ $len -eq 1 ];then
                echo ${LIST[@]}
                break
        else
                modify
        fi
done

This entry w

阅读(1028) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

learywolf2012-05-14 15:18:33

鱼门客栈: - -这个代码用来干什么、。.....
上面需求已经做了说明,就是要每12个数删除掉一个。

鱼门客栈2012-05-12 16:46:52

- -这个代码用来干什么、。