精华内容
下载资源
问答
  • 本案例要求编写一个Shell脚本chkhosts.sh,利用for循环来检测多个主机的存活状态,相关要求及说明如下: 待检测的多个目标IP地址,存放在ipadds.txt文件内 ping检测可参考前一天的pinghost.sh脚本 脚本能遍历ping各...

    问题
    本案例要求编写一个Shell脚本chkhosts.sh,利用for循环来检测多个主机的存活状态,相关要求及说明如下:
    待检测的多个目标IP地址,存放在ipadds.txt文件内
    ping检测可参考前一天的pinghost.sh脚本
    脚本能遍历ping各主机,并反馈存活状态
    执行检测脚本以后,反馈结果如图-1所示。
    在这里插入图片描述
    图-1
    方案
    在Shell脚本应用中,常见的for循环采用遍历式、列表式的执行流程,通过指定变量从值列表中循环赋值,每次复制后执行固定的一组操作。
    for循环的语法结构如下所示:

    for  变量名  in  值列表
    do
        命令序列
    done
    

    步骤
    实现此案例需要按照如下步骤进行。
    步骤一:练习for循环基本用法
    脚本1,循环输出“我来自 XX 。”,其中XX替换为指定的几个城市名:

    [root@svr5 ~]# vim for01.sh
    #!/bin/bash
    for i in "北京" "上海" "长沙" "香港" "台湾"
    do
        echo "我来自 $i 。"
    done
    [root@svr5 ~]# chmod +x for01.sh
    

    脚本1的运行结果测试:

    [root@svr5 ~]# ./for01.sh
    我来自 北京 。
    我来自 上海 。
    我来自 长沙 。
    我来自 香港 。
    我来自 台湾 。
    

    脚本2,列出Yum库中vsftpd、bind、httpd、mysql-server四个软件包的摘要描述信息(Summary行的描述文本):

    [root@svr5 ~]# vim for02.sh
    #!/bin/bash
    for i in "vsftpd" "bind" "httpd" "mysql-server"
    do
        yum info $i | grep "^Summary"
    done
    [root@svr5 ~]# chmod +x for02.sh
    脚本2的运行结果测试:
    [root@svr5 ~]# ./for02.sh
    Summary     : Very Secure Ftp Daemon
    Summary     : The Berkeley Internet Name Domain (BIND) DNS (Domain Name System)
    Summary     : Apache HTTP Server
    Summary     : The MySQL server and related files
    

    步骤二:批量检测多个主机的存活状态
    1)任务需求及思路分析
    已知IP地址存放在ipadds.txt文件内,那么可以采用“变量替换+for循环”的方式获取每一个IP地址;针对每一个IP地址执行ping检测,方法可参考上一章if选择示例中主机存活检测的方法。
    比如,先确认(或建立)目标IP地址列表文件,能ping通、不能ping通的地址各添加几个,以方便测试:

    [root@svr5 ~]# vim /root/ipadds.txt
    192.168.4.5
    192.168.4.205
    172.16.16.78
    202.106.178.234
    

    2)使用for循环整理实现思路

    HLIST=从文件/root/ipadds获得IP地址列表
    for IP地址 in 文件/root/ipadds中的一个地址
    do
        ping IP地址
        if [ 前一条命令ping通了 ] ; then
            提示“此主机正在运行”
        else
            提示“此主机已关闭或不存在”
        fi
    done
    

    3)根据实现思路编写脚本

    [root@svr5 ~]# vim chkhosts.sh
    #!/bin/bash
    HLIST=$(cat /root/ipadds.txt)
    for IP in $HLIST
    do
        ping -c 3 -i 0.2 -W 3 $IP &> /dev/null
        if [ $? -eq 0 ] ; then
            echo "Host $IP is up."
        else
            echo "Host $IP is down."
        fi
    done
    
    [root@svr5 ~]# chmod +x chkhosts.sh
    

    4)测试、验证脚本

    [root@svr5 ~]# ./chkhosts.sh
    Host 192.168.4.5 is up.
    Host 192.168.4.205 is up.
    Host 172.16.16.78 is down.
    Host 202.106.178.234 is down.
    
    展开全文
  • 1.windows平台的简单for循环 应用场景举例,git上面的项目很,有几十,不想一去拉取,建立gitclone.bat脚本文件,内容如下 @echo off echo start git clone pause for /f %%i in (list.txt) do git ...

    1.windows平台的简单for循环

    应用场景举例,git上面的项目很多,有几十个,不想一个一个去拉取,建立gitclone.bat脚本文件,内容如下

    @echo off
    echo start git clone
    pause
    for /f %%i in (list.txt) do git clone %%i
    echo 'git clone finish!'
    pause

    1)命令解释  echo off 即不显示命令本身,只显示执行的结果,加上@即连echo off 也不显示

    2)echo  即输出字符串

    3)for /f %%i in (list.txt) do git clone %%i 

    %%i为变量接受值,for xxx in 集合 do 这个是for循环基本接口,/f表示度取文件,默认按行读取,其他的读取规则参见

    https://www.cnblogs.com/dongzhiquan/archive/2009/08/06/1994754.html    do 后面是要执行的命令

    4)pause 按任意键继续

    5)list.txt文件内容如下

    http://183.192.162.101:8089/microServicesV2/ability.git
    http://183.192.162.101:8089/microServicesV2/app-management.git

    2.Linux平台的简单for循环

    应用场景,在服务部署后需要批量的取初始化数据即需要多次请求一个接口,即可建立curlbat.sh

    #!/bin/bash
    log_file='result.log'
    i=1
    for line in `cat mgdbId.txt`;
    do
       echo "read line" $i ":" $line | tee -a $log_file
       curl_cmd="curl  http://localhost:8323/matchData/output?mgdbId=$line -v"
       echo `date "+%Y-%m-%d %H:%M:%S"` "start ===>> " $curl_cmd | tee -a $log_file
       eval "$curl_cmd 2>&1" | tee -a $log_file
       echo `date "+%Y-%m-%d %H:%M:%S"` "end <<===" $curl_cmd | tee -a $log_file

       i=i+1
    done

    echo `date "+%Y-%m-%d %H:%M:%S"` "over: end of shell" | tee -a $log_file

    1)#!/bin/bash shell脚本的固定格式,表示用/bin/bash来执行这个shell脚本,shell脚本的执行有好几种,bash是常见的Redhat系的linux系统中

    2)log_file变量赋值 ,指定日志文件

    3)i=1初始化i,记录第几行

    4)for line in `cat mgdbId.txt`;  do done为循环的基础格式

    5)echo "read line" $i ":" $line | tee -a $log_file  其中echo 输出字符串 $line,$符为取变量的值

    tee -a $log_file  tee -a 附加到既有文件的后面,而非覆盖它.整句即为将命令的输出追加到日志文件

    6) eval "$curl_cmd 2>&1" | tee -a $log_file  eval即要执行的命令参数  2>&1 即将标准错误重定向到标准输出,也就是将命令的执行结果追加到result.log文件中。

    展开全文
  • Linux 使用for循环结构

    2019-05-28 22:36:04
    本案例要求编写一个Shell脚本chkhosts.sh,利用for循环来检测多个主机的存活状态,相关要求及说明如下: 待检测的多个目标IP地址,存放在ipadds.txt文件内 ping检测可参考前一天的pinghost.sh脚本 脚本能遍历ping各...

    1.使用for循环结构
    问题
    本案例要求编写一个Shell脚本chkhosts.sh,利用for循环来检测多个主机的存活状态,相关要求及说明如下:
    待检测的多个目标IP地址,存放在ipadds.txt文件内
    ping检测可参考前一天的pinghost.sh脚本
    脚本能遍历ping各主机,并反馈存活状态
    执行检测脚本以后,反馈结果如图-1所示。
    在这里插入图片描述
    图-1
    方案
    在Shell脚本应用中,常见的for循环采用遍历式、列表式的执行流程,通过指定变量从值列表中循环赋值,每次复制后执行固定的一组操作。
    for循环的语法结构如下所示:
    for 变量名 in 值列表
    do
    命令序列
    done
    步骤
    实现此案例需要按照如下步骤进行。
    步骤一:练习for循环基本用法
    脚本1,循环输出“我来自 XX 。”,其中XX替换为指定的几个城市名:
    [root@svr5 ~]# vim for01.sh
    #!/bin/bash
    for i in “北京” “上海” “长沙” “香港” “台湾”
    do
    echo “我来自 $i 。”
    done
    [root@svr5 ~]# chmod +x for01.sh
    脚本1的运行结果测试:
    [root@svr5 ~]# ./for01.sh
    我来自 北京 。
    我来自 上海 。
    我来自 长沙 。
    我来自 香港 。
    我来自 台湾 。
    脚本2,列出Yum库中vsftpd、bind、httpd、mysql-server四个软件包的摘要描述信息(Summary行的描述文本):
    [root@svr5 ~]# vim for02.sh
    #!/bin/bash
    for i in “vsftpd” “bind” “httpd” “mysql-server”
    do
    yum info KaTeX parse error: Expected 'EOF', got '#' at position 39: …e [root@svr5 ~]#̲ chmod +x for02…(cat /root/ipadds.txt)
    for IP in $HLIST
    do
    ping -c 3 -i 0.2 -W 3 $IP &> /dev/null
    if [ $? -eq 0 ] ; then
    echo “Host $IP is up.”
    else
    echo “Host $IP is down.”
    fi
    done

    [root@svr5 ~]# chmod +x chkhosts.sh
    4)测试、验证脚本
    [root@svr5 ~]# ./chkhosts.sh
    Host 192.168.4.5 is up.
    Host 192.168.4.205 is up.
    Host 172.16.16.78 is down.
    Host 202.106.178.234 is down.

    展开全文
  • LINUX 使用for循环结构

    2019-06-04 07:44:57
    本案例要求编写一个Shell脚本chkhosts.sh,利用for循环来检测多个主机的存活状态,相关要求及说明如下: 待检测的多个目标IP地址,存放在ipadds.txt文件内 ping检测可参考前一天的pinghost.sh脚本 脚本能遍历ping各...

    问题
    本案例要求编写一个Shell脚本chkhosts.sh,利用for循环来检测多个主机的存活状态,相关要求及说明如下:
    待检测的多个目标IP地址,存放在ipadds.txt文件内
    ping检测可参考前一天的pinghost.sh脚本
    脚本能遍历ping各主机,并反馈存活状态
    执行检测脚本以后,反馈结果如图-1所示。
    在这里插入图片描述
    图-1
    方案
    在Shell脚本应用中,常见的for循环采用遍历式、列表式的执行流程,通过指定变量从值列表中循环赋值,每次复制后执行固定的一组操作。
    for循环的语法结构如下所示:

    for  变量名  in  值列表
    do
        命令序列
    done
    

    步骤
    实现此案例需要按照如下步骤进行。
    步骤一:练习for循环基本用法
    脚本1,循环输出“我来自 XX 。”,其中XX替换为指定的几个城市名:

    [root@svr5 ~]# vim for01.sh
    #!/bin/bash
    for i in "北京" "上海" "长沙" "香港" "台湾"
    do
        echo "我来自 $i 。"
    done
    [root@svr5 ~]# chmod +x for01.sh
    

    脚本1的运行结果测试:

    [root@svr5 ~]# ./for01.sh
    我来自 北京 。
    我来自 上海 。
    我来自 长沙 。
    我来自 香港 。
    我来自 台湾 。
    

    脚本2,列出Yum库中vsftpd、bind、httpd、mysql-server四个软件包的摘要描述信息(Summary行的描述文本):

    [root@svr5 ~]# vim for02.sh
    #!/bin/bash
    for i in "vsftpd" "bind" "httpd" "mysql-server"
    do
        yum info $i | grep "^Summary"
    done
    [root@svr5 ~]# chmod +x for02.sh
    

    脚本2的运行结果测试:

    [root@svr5 ~]# ./for02.sh
    Summary     : Very Secure Ftp Daemon
    Summary     : The Berkeley Internet Name Domain (BIND) DNS (Domain Name System)
    Summary     : Apache HTTP Server
    Summary     : The MySQL server and related files
    

    步骤二:批量检测多个主机的存活状态
    1)任务需求及思路分析
    已知IP地址存放在ipadds.txt文件内,那么可以采用“变量替换+for循环”的方式获取每一个IP地址;针对每一个IP地址执行ping检测,方法可参考上一章if选择示例中主机存活检测的方法。
    比如,先确认(或建立)目标IP地址列表文件,能ping通、不能ping通的地址各添加几个,以方便测试:

    [root@svr5 ~]# vim /root/ipadds.txt
    192.168.4.5
    192.168.4.205
    172.16.16.78
    202.106.178.234
    

    2)使用for循环整理实现思路

    HLIST=从文件/root/ipadds获得IP地址列表
    for IP地址 in 文件/root/ipadds中的一个地址
    do
        ping IP地址
        if [ 前一条命令ping通了 ] ; then
            提示“此主机正在运行”
        else
            提示“此主机已关闭或不存在”
        fi
    done
    

    3)根据实现思路编写脚本

    [root@svr5 ~]# vim chkhosts.sh
    #!/bin/bash
    HLIST=$(cat /root/ipadds.txt)
    for IP in $HLIST
    do
        ping -c 3 -i 0.2 -W 3 $IP &> /dev/null
        if [ $? -eq 0 ] ; then
            echo "Host $IP is up."
        else
            echo "Host $IP is down."
        fi
    done
    
    [root@svr5 ~]# chmod +x chkhosts.sh
    

    4)测试、验证脚本

    [root@svr5 ~]# ./chkhosts.sh
    Host 192.168.4.5 is up.
    Host 192.168.4.205 is up.
    Host 172.16.16.78 is down.
    Host 202.106.178.234 is down.
    
    展开全文
  • 需要加omp.h这个库,编译的时候加-fopenmp参数: ...代码块里,如果要将for循环拆分多个线程执行,则在for循环前加#pragma omp parallel for #include <stdio.h> #include <omp.h> int main() { #pr...
  • 今天总结一下关于linux shell里的递归循环的问题起因是一群友在群里的提问问的是怎么把有或多或少空目录的几文件移动走的问题归根结底就是一递归循环的问题如果之前接触过c语言之类的编程语言、那么这很好...
  • 1 声明解析器 #!/bin/bash ... $* 代表输入多个参数 $1~$n 代表输入一到N个参数 $# 参数个数 $0 文件名本身 4 for 的几种写法 从sh 后读取多参数 #!/bin/bash for i in $* ; do echo $i;
  • for语句的语法格式1对变量的赋值通过在in后面直接赋值,多个赋值通过空格隔开:语法格式2则是首先通过初始化变量的值,也就是定义一个变量的初始值,然后通过运算修改变量的值,当结束循环的条件满足时,for循环结束...
  • linux shell多个数组循环

    千次阅读 2016-03-04 17:01:48
    #!/bin/bash arr1=(a b c d) ...for i in 1 2 do  var="arr"$i"[@]"  for j in ${!var}  do  echo $j  done done 脚本如上! 说明: ${!var} 用于返回以var变量的值命名的变量的值 作用类
  • 目的:在linux系统中创建多个普通用户,用户名来自user.txt liming zhangsan lisi wangwu hulu zhangji jina 设计思路:遍寻file文件中所有内容,并用useradd $var添加用户名为变量值的普通用户 #!/bin/bash ...
  • linux for 循环的小应用

    2019-09-27 22:45:09
    [root@localhost ~]# mkdir -pv /home/data{1..5} # 创建多个目录 以下两种方法类似。 for i in {1..5};do echo "<h3>test<h3>" > /home/data$i/index.html; done [root@localhost ~]# for i in $...
  • 关于抽奖看这篇文章《Linux进程管理数据结构》,以后也会不定期抽奖,今年赚点钱,过年的时候,希望给大家抽一大奖,喜欢的读者使劲给转发点赞,关注,未来是你们的,大奖也是你们的,感谢支持,不喜欢的请轻拍...
  • NTTTCP-for-Linux微软的网络吞吐量多线程基准测试工具 for linux版特征多个线程来发送/接收数据(“ -P”,“-n”和“ -l”)。默认情况下,Receiver('-r')使用16个线程,而Sender('-s')使用64个线程交换数据。支持cpu...
  • for循环命令基本格式: for var in list do  commonds done 测试脚本: 执行结果如下: 读取列表中的复杂值: 修改test3.sh如下,执行结果如下: 如上可以看到,第二次循环的时候...
  • for循环语句允许脚本一次性读取多个信息,然后逐一对信息进行操作处理,有点类似于python里面for循环遍历的概念,当要处理的数据有范围时用for语句再合适不过了。语法结构为 for 变量名 in 取值列表 do 命令序列 ...
  • linux shell中的语法和普通编程语言 c/c++ java 的不太一样,平时用的不,所以总是记不住,写脚本才会去查怎么用。今天突然被问到数组怎么去遍历。平时写shell脚本也经常...linux 中定义一数据的语法为:variabl...
  • linux shell 编程 9 for 循环删除文件

    千次阅读 2016-02-03 10:08:41
    一、删除多个文件 #!/bin/bash DATE=$(date -d '-1 month' +%Y%m%d) #DATE=20160104 #all file file1=autoimportdate.log file2=autoPubbjNews.log file3=autoPubdgNews.log file4=autoPublishDate.log file5=...
  • 使用循环和查找命令批量自动对多个文件进行一系列的操作。-- Seth Kenlon人们希望学习批处理命令的一个普遍原因是要得到批处理强大的功能。如果你希望批量的对文件执行一些指令,构造一个可以重复运行在那些文件上的...
  • 虽然现在Python在运维工作中已经使用很普遍,但是很多企业在找Linux云计算工程师的时候还是会问... 答:一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务...
  • Shell编程之case语句与循环语句 case分支语句 case语句的结构 针对变量的不同取值,分别执行不同的命令序列 case 变量值 in 模式 1) 命令序列 1 ;; 模式 2) 命令序列 2 ;; *) 默认命令序列 esac case...
  • linux 中定义一数据的语法为: variable=(arg1 arg2 arg3 ....) 中间用空格分开。数组的下标从0开始。 1 获取下标为n的元素: variable[n] 而且不存在数组下标溢出的情况,如果 n>= 数组的长
  • linux中的for循环有很用处:比如跑历史数据,参数为日期,那么我们可以把日期放入for循环中,循环把日期作为参数执行下面看一我生产中用到的例子[zhangshk@fonova-app02 ~]$ cat nohup_run0_100.sh for i in {0...
  • 今天写点程序,声明个人是小白 发现一没有错的程序一直报错,百思不得其解。...意思是我的for循环形式只是在c99下是允许的 。 所以要修改一下我的for循环模式 c语言有很标准 以前的标准不允许for(i
  • linux shell中的语法和普通编程语言 c/c++ java 的不太一样,平时用的不,所以总是记不住,写脚本才会去查怎么用。今天突然被问到数组怎么去遍历。平时写shell脚本也经常遍历数组,...linux 中定义一数据的语法为:
  • 下午在用python将Linux的conf配置文件转化成字典dict时遇到了一奇怪的问题,原先conf配置文件中没有注释行(以#开头的行),后来为了避免这种情况,添加了一对以#开头的行删除的操作。 实践结果颠覆了已有的认知,...
  • int main() { int i ,ret; for(i = 0; i<N ;i++){ ret = pthread_create(&tid, NULL,tfn,NULL); if(ret!=0) perror(..); } }

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 340
精华内容 136
关键字:

linux多个for循环

linux 订阅