3列数组,arrayA,arrayB,arrayC;
分别一一对应主机及其主机所能创建的资源数,还有arrayC表示需要创建的资源数;
arrayA=("192.168.1.1" "192.168.1.2" "192.168.1.3" "192.168.1.4")
arrayB=("1" "2" "1" "2")
arrayC=("100" "200" "300" "400" "500" "600" "700")
注意,以前情况${#arrayC[@}}=7,超过了arrayB所有所能创建的资源数1+2+1+2=6,
当需要创建资源700的时候,脚本自动退出;
以上有2种解决方法,第一种正向双for循环,从第一个元素轮循到最后一个元素,
不过这种方法效率不高,接下来提供第二种方法,代码也写少了几十行;

for _host in ${array[A]};do

    j=${arrayB[]}

    for _res in ${array[C]};do

    ssh ${_host} init
[[ $? == ]] && { ((j=j-));echo "Success"; } || { echo "Fail";exit ; }
arrayC=(${array[@]:}) if [[ ${j} == "" ]];then
[[ ${#arrayC[@]} == "" ]] && STATUS= || { STATUS=;break; }
esle
[[ ${#arrayC[@]} == "" ]] && STATUS=
fi done if [[ "${STATUS}" == "" ]];then arrayA=(${arrayA[@]:})
arrayB=(${arrayB[@]:}) if [[ ${#array[@]} == "" ]];then
[[ "${#arrayC[@]}" != "" ]] && { echo "资源有限,${arrayC[@]}拒绝创建";exit ; }
esle
continue
fi else
{ echo "已按要求初始化";exit ; }
fi
done

Base:-用数组赋值实现while和shift功能的更多相关文章

  1. C语言 给字符数组赋值的方法

    typedef struct _tagTESTCHAR { char szTest[30];}TESTCHAR , *PTESTCHAR; int main(int argc, char* argv[ ...

  2. java中将一个字符数组赋值给另一个,两者同时变化

    java中将一个字符数组赋值给另一个,两者的变化怎么是同步的?怎么才能让他们独立开? 比如有一个int[][] a 已经存在值,现在定义int[][] b=a;之后改变a的值,为何b也跟着改变?怎么才 ...

  3. 动态二维数组赋值及for循环遍历和toString遍历

    package com.Summer_0421.cn; import java.util.Arrays; /** * @author Summer * 动态二维数组赋值及for循环遍历和toStrin ...

  4. 【Java】 foreach对数组赋值问题

    今天写代码时发现了如下问题: public class Test { public static void main(String[] args) { int[] arr= new int[5]; f ...

  5. C语言可以给字符数组赋值的方法

    分类: C 2012-04-06 10:23 4081人阅读 评论(0) 收藏 举报 语言c 学了这么多年的C语言,突然发现连字符串赋值都出错,真的很伤心. char a[10]; 怎么给这个数组赋值 ...

  6. JAVA中如何创建一个二维数组,然后给二维数组赋值!

    普通的赋值是:int[][] i = {{1,2,3},{2,3,4},{1,3,4}}; 如果是其他情况可以这样:比如: import java.util.* public class TT(){ ...

  7. js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip

    push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会依次添加到数组的末尾. 该函数属于Array对象,所有主流浏览器均支持该函数. 语法 array.push( ite ...

  8. unsigned char数组赋值

    memset(send_buf, 0, SEND_BUFF_LEN); const char * pStr = "this is test txt"; strcpy((char*) ...

  9. JS数组 谁是团里成员(数组赋值)var myarray = new Array(66,80,90,77,59);//创建数组同时赋值

    谁是团里成员(数组赋值) 数组创建好,接下来我们为数组赋值.我们把数组看似旅游团的大巴车,大巴车里有很多位置,每个位置都有一个号码,顾客要坐在哪个位置呢? 第一步:组个大巴车 第二步:按票对号入座 大 ...

随机推荐

  1. gdb

    ● 要用gdb调试,在ggc编译时,需要家参数-g: gcc -g test.c - test ● 设置断点: gdb test b 63 if i==10 63是断点坐在的行号,用list命令列举出 ...

  2. MVC中的一些坑

    1.@字符在.cshtml文件中不能启用 经过2个小时求解,发现是配置文件web.config中引用的namespace少了System.Web.Optimization,所以不能启用,因为创建的空的 ...

  3. [uva12170]Easy Climb

    还是挺难的一个题,看了书上的解析以后还是不会写,后来翻了代码仓库,发现lrj又用了一些玄学的优化技巧. #include <algorithm> #include <iostream ...

  4. JBoss QuickStart之深入

    EJB-AsynchronousEJB中提供异步调用的方法. "A session bean can expose methods with asynchronous client invo ...

  5. [1]IP地址查询

    今天起开始玩百度APIStore里面的免费API.以前用过的有12306的:数据.接口,有时间整理出来,12306的有点乱就是了.还有扇贝以及有道的API,之前用在留言板里自动翻译,公司用过百度地图以 ...

  6. Emacs 16进制模式

    http://blog.163.com/lan_ne/blog/static/1926701702012112272840545/ ALT+X hexl-mode   进入16进制模式 在这一模式,直 ...

  7. C#注解属性的感想一:

    C#当中Attribute(中文注解属性)已经知道这个概念已经很久很久了,不过悲剧的是在实际项目当中重来没有用它来做过什么东西,以致对它的理解总是很浅薄,更谈不上如何在实际项目中运用它.最近在学习&l ...

  8. 第五篇:白话tornado源码之褪去模板的外衣

    上一篇<白话tornado源码之请求来了>介绍了客户端请求在tornado框架中的生命周期,其本质就是利用epoll和socket来获取并处理请求.在上一篇的内容中,我们只是给客户端返回了 ...

  9. setTimeout调用带参数的函数的方法

    function test(s){    alert(s);}window.setTimeout(function(){test('str');},1000);这样就可以了...为什么是这样呢.因为s ...

  10. 如何把Excel中的某列数值如何转换成文本格式,且兼容性最好?

    假设要把下方A列数值变成文本格式.有多种方法,其中下方的方法兼容性最好: 第一步:选择 A 列,然后,运行菜单 数据/分列... 命令,如下图: 第二步:默认 下一步: 第三步:默认 下一步: 第四步 ...