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循环,从第一个元素轮循到最后一个元素,
不过这种方法效率不高,接下来提供第二种方法,代码也写少了几十行;

  1. for _host in ${array[A]};do
  2.  
  3. j=${arrayB[]}
  4.  
  5. for _res in ${array[C]};do
  6.  
  7. ssh ${_host} init
  8. [[ $? == ]] && { ((j=j-));echo "Success"; } || { echo "Fail";exit ; }
  9. arrayC=(${array[@]:})
  10.  
  11. if [[ ${j} == "" ]];then
  12. [[ ${#arrayC[@]} == "" ]] && STATUS= || { STATUS=;break; }
  13. esle
  14. [[ ${#arrayC[@]} == "" ]] && STATUS=
  15. fi
  16.  
  17. done
  18.  
  19. if [[ "${STATUS}" == "" ]];then
  20.  
  21. arrayA=(${arrayA[@]:})
  22. arrayB=(${arrayB[@]:})
  23.  
  24. if [[ ${#array[@]} == "" ]];then
  25. [[ "${#arrayC[@]}" != "" ]] && { echo "资源有限,${arrayC[@]}拒绝创建";exit ; }
  26. esle
  27. continue
  28. fi
  29.  
  30. else
  31. { echo "已按要求初始化";exit ; }
  32. fi
  33. 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. JQ第二天

    一.属性.表单过滤选择器 $("div[id]")选取有id属性的<div>//$("div [id]")有空格表示div层当中有id属性的元素 $ ...

  2. SQL Server 性能调优之--tempdb 之存放路径

    在我们的OLAP的实现中,SQL超级复杂,用了很多的临时表,tempdb在安装时默认选择了安装SQLserver的本地磁盘路径,没有使用磁盘阵列. 在学习PostgreSQL时发现很多专家建议把临时表 ...

  3. CLion 2016.2.2 注册激活码

    43B4A73YYJ-eyJsaWNlbnNlSWQiOiI0M0I0QTczWVlKIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiI ...

  4. 发布Live Writer代码着色插件CNBlogs.CodeHighlighter

    在解决了使用Windows Live Writer发博所遇到的"建分类.加标签.写摘要"与"设置EntryName"的四个问题之后,我们趁热打铁,解决了第五个问 ...

  5. wp8.1 页面返回 页面导航

    public The_second() public second() { this.InitializeComponent(); Frame frame = Window.Current.Conte ...

  6. npm总结

    1.npm install -g 模块               全局安装                 2.npm install 模块@version      安装具体摸个版本的模块     ...

  7. iOS单个应用程序的最大可用内存是多少?

    iOS单个应用程序的最大可用内存是多少?   StackOverflow上有人做了一些简单的测试,有限设备下迄今为止测到的结果: iPad1: 127MB/256MB/49% (大致crash临界值 ...

  8. varnish4.1 配置文件default.vcl

    varnish4.1 配置文件default.vcl # This .x VCL file vcl 4.0; backend default { .host = "127.0.0.1&quo ...

  9. spark 基本操作

    读取文件的数据 使用的数据:https://codeload.github.com/xsankar/fdps-v3/zip/master 读取单个文件的数据 case class Employee(E ...

  10. Repeater控件用法

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Repeater.aspx. ...