精华内容
下载资源
问答
  • 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循环

    万次阅读 2018-07-24 20:32:27
    比如要统计每BAM文件里的reads数目,用for 循环可以如下: for i in H3K4me1_{0,1,4,12}hour.bam;do echo $i; samtools view -c $i ;done 对从文件中提取: for i in ${cat file.txt};do echo $i;done ...

    要设定特定的循环列表,可以由文件导入,也可以由{} 导入。
    比如要统计每个BAM文件里的reads数目,用for 循环可以如下:

    for i in H3K4me1_{0,1,4,12}hour.bam;do echo $i; samtools view -c $i ;done

    对从文件中提取:

    for i in ${cat file.txt};do echo $i;done

    对等差数列:

    #有很多种用法
    for i in {1..5};do echo $i;done
    for i in {1..5..2};do echo $i;done   #等差
    for i in $(seq 1 5);do echo $i;done
    for i in $(seq 1 2 5);do echo $i;done

    对从目录提取:

    for i in `ls /`;do echo $i;done

    通过脚本传参。参考

    echo "argument number are $#"
    echo "the input is "
    
    for argument in "$*";
    do
        echo "$argument "
    done
    
    bash temp.sh 2 hellp good fine

    输出:

    argument number are 4
    the input is 
    2 hellp good fine 
    展开全文
  • Linux 命令行 还是可以写代码的, for 循环 可以使用的。 然后,这个需求就是,把几个比较小的文件,批量的复制然后合并到一个文件。实现分分钟去创建一个超大文件的场景。...注意,这个for循环...

    Linux 命令行 还是可以写代码的, for 循环 可以使用的。

    然后,这个需求就是,把几个比较小的文件,批量的复制然后合并到一个文件。实现分分钟去创建一个超大文件的场景。

    使用的命令:

    for i in {1..10}; do cat *.flows >> /Users/fang/Downloads/create/ls/lx3k.flows; done

    注意,这个for循环中间是2个点,,,,2个点的情况下才会去循环10次。不然也会执行,但是不会报错,就执行一次。

    大师兄

    看我这个截图里面,这个for循环,有2个点的,也有n个点的。只有2个点的情况下,生成的目标文件是将原来的两个文件里面的内容复制了10次,最后写到目标文件去。不然就只是复制了一次。

    可以从文件大小来确认这个情况。原来的2个文件都是366字节,复制一遍,那就是732字节。复制10遍,就是7k了。

    展开全文
  • Linux for循环之类C风格for循环

    千次阅读 2017-07-23 18:34:39
    for循环Linux shell 中最常用的结构。for 循环有三种结构:一种结构是列表for循环;第二种结构是不带列表for循环;第三种结构是类C风格的for循环。上篇博文讲解了不带列表for循环,本篇博文重点看类C风格for循环。...

    for循环是Linux shell 中最常用的结构。for 循环有三种结构:一种结构是列表for循环;第二种结构是不带列表for循环;第三种结构是类C风格的for循环。上篇博文讲解了不带列表for循环,本篇博文重点看类C风格for循环。类C风格的for循环也可被称为计次for循环,一般用于循环次数已知的情况。

    下面是类C风格for循环的语法格式

    for((expr1; expr2; expr3))
    do
        command
        command
        ...
    done
    其中表达式expr1为循环变量赋初值的语句;表达式expr2决定是否进行循环的表达式,当判断expr2退出状态为0时,执行do和done之间的循环体,当退出状态为非0时,将退出for循环执行done后的命令;表达式expr3用于改变循环变量的语句。类C风格的for循环结构中,循环体也是一个块语句,要么是单条命令,要么是多条命令,但必须包裹在do和done之间。


    ex9、输出前5个正数

    [zhangqi@localhost shellscript]$ cat for_ex9.sh 
    #!/bin/bash
    
    #使用类C风格for循环输出1~5
    for ((integer = 1; integer <= 5; integer++)) 
    do
        echo "$integer"
    done
    
    [zhangqi@localhost shellscript]$ sh for_ex9.sh 
    1
    2
    3
    4
    5
    [zhangqi@localhost shellscript]$ 
    

    脚本中for循环首先声明了循环变量integer,并赋值为1,之所以称integer为循环变量,是因为integer用于控制循环执行的次数和结束条件,接着判断integer是否小于或等于5,若integer小于或等于5,成立,则执行循环体do和done之间的命令,而后执行修正表达式“integer++”,将integer的值加1,再次判断integer小于或等于5是否成立,以此类推,直至循环结束。


    使用类C风格for循环要注意以下事项:

    • 如果循环条件最初的退出状态为非0,则不会执行循环体
    • 当执行更新语句时,如果循环条件的退出状态永远为0,则for循环将永远执行下去,从而产生死循环
    • Linux shell中不运行使用非整数类型的数作为循环变量
    • 如果循环体中的循环条件被忽略,则默认的退出状态为0
    • 在类C风格的for循环中,可以将三个语句全部忽略掉,下面是合法的for循环
    for((; ; ))
    do
        echo "hello world"
    done

    ex10、循环计算1~100内所有的奇数之和
    [zhangqi@localhost shellscript]$ cat for_ex10.sh 
    #!/bin/bash
    
    sum=0
    
    for((i = 1; i <= 100; i = i + 2))
    do
        let "sum += i"
    done
    
    echo "sum = $sum"
    
    [zhangqi@localhost shellscript]$ sh for_ex10.sh 
    sum = 2500
    [zhangqi@localhost shellscript]$ 
    

    其中循环条件为 i<=100,初始条件i=1,因此,i=i+2将步长设定为2,每执行一次循环体,就将i的值增加2,最终产生结果sum 为2500

    ex11、使用逗号运算符对两个变量进行操作
    [zhangqi@localhost shellscript]$ cat for_ex11.sh 
    #/bin/bash
    
    limit=5
    
    for((a = 1, b = 5; a <= limit; a++, b --))
    do 
        let "temp=a-b"
        echo "$a-$b=$temp"
    done
    
    [zhangqi@localhost shellscript]$ sh for_ex11.sh 
    1-5=-4
    2-4=-2
    3-3=0
    4-2=2
    5-1=4
    [zhangqi@localhost shellscript]$ 
    

    在脚本中,对变量a 和 变量b 同时初始化,通过a <=limit 来设置循环条件,然后通过a++设置a加1操作、b--设置b减1操作,每执行一次for循环,都判断a是否小于等于limit,该循环将不断的执行,直到a > 5。

    在使用类C风格的for循环时,要保证for循环可以正常结束,也就是必须保证循环条件的结果存在退出状态为非0的情况,否则将无休止地执行下去,从而产生死循环。


    展开全文
  • Linuxfor循环进程终止的方法

    千次阅读 2018-03-06 18:06:25
    需求是这样: #!...#for循环执行进程,省的一个个手动跑 for((day=1;day&lt;=59;day++)) do if [[ $day -lt 10 ]]; then tmpday=2018010${day} elif [[ $day -le 31 ]]; then tmpda...
  • 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 for循环 批量添加用户

    千次阅读 2019-05-24 13:52:15
    这段时间正学到linux的shell编程一块,其中碰到一for循环批量导入用户的例子,对于学习挺有帮助的 #!/bin/bash read -t 30 -p "input name:" name read -t 30 -p "input num:" num read -t 30 -p "input ...
  • shell for循环多个变量

    千次阅读 2020-05-16 21:31:14
    1.使用花括号{var1,var2,var3} ...for i in {$a,$b,$c} do echo $i done 2.使用小括号(数组) a="apple";b="banana";c="cherry" d=($a $b $c) for i in ${d[@]} do echo $i done shell数组的用法
  • 在Shell脚本中调用另一脚本的三种方式: source 指定脚本中的命令在同一shell中运行。(默认shell中的命令都是创建sub-shell,然后执行。执行完后,返回父shell) fork 就是创建sub-shell运行脚本中的命令,和...
  • linux结构化命令:for循环

    千次阅读 2017-11-28 16:45:41
    for循环命令基本格式: for var in list do  commonds done 测试脚本: 执行结果如下: 读取列表中的复杂值: 修改test3.sh如下,执行结果如下: 如上可以看到,第二次循环的时候...
  • 转载: http://www.cnblogs.com/love-DanDan/p/8724245.html这里说一下相关的基础知识: 线程概念 什么是线程 LWP:light weight process 轻量级的进程,本质仍是进程(在Linux环境下) 进程:独立地址空间,...
  • 13.1、Shell for循环语法for 变量 in 列表 do command1 command2 ... commandN done**也可以写成:for var in list; do 13.1.1、读取列表中的值 #!/bin/bash #basic for commandfor test in Alabama BOb Tom ...
  • linux shell中的语法和普通编程语言 c/c++ java 的不太一样,平时用的不,所以总是记不住,写脚本才会去查怎么用。今天突然被问到数组怎么去遍历。平时写shell脚本也经常遍历数组,...linux 中定义一数据的语法为:
  • 1. for 语句 bash shell 中 for 命令的基本格式如以下,$var 变量包含着这次迭代对应的当前列表项中的值。 for var in list do commands done 也可以将 do 语句和 for 语句放在同一行,但必须用分号将其同...
  • 它只是一文件传输工具,看似和shell命令在执行中有相似,但其实有一些细节的地方是很不一样的习惯 1 区分ftp命令和shell命令 在shell中可以创建touch ,vi文件,而进入ftp命令后就只能执行上传下载,lcd,cd,cd这...
  • linux脚本之 for循环方式

    千次阅读 2012-08-28 17:48:15
    关于shell中的for循环用法很,一直想总结一下,今天网上看到上一篇关于for循环用法的总结,感觉很全面,所以就转过来研究研究,嘿嘿... 1、 for((i=1;i 2、在shell中常用的是 for i in $(seq 10) 3、for i in...
  • 一.shell中的for循环 1.for循环的语法格式 shell中的 for 循环中可以使用 break 和 continue 关键字来跳出循环, 和java 用法一致。 常用的for循环结构有三种: 粗略的结构: for 条件 do 循环主体 done ...
  • 使用场景: 更新SAS HBA 固件,但是系统有多个sg device: ./SeaChest --scan |grep SEAG SEAGATE /dev/sg10 ST10000NM0096 ZA273EM0 E002 SEAGATE /dev/sg11 ST10000NM0096 ZA26YMJF ...
  • 线程执行for循环shell脚本

    万次阅读 多人点赞 2017-12-29 15:22:48
    需求:并发检测1000台web服务器状态(或者并发为1000台web服务器分发文件等...思路:一个for循环1000次,顺序执行1000次任务。 实现: #!/bin/bash start_time=`date +%s` #定义脚本运行的开始时间 for ((i=
  • 先来看一组简单代码,引出这篇博客的核心 for(var i=0;i<9;i++){ console.log(i); //依次输出0.1.2.3.4.5.6.7.8 ...在这段代码中,在函数内部,i的值为确定的9,这是因为for循环{}没有块...
  • linux中的for循环有很用处:比如跑历史数据,参数为日期,那么我们可以把日期放入for循环中,循环把日期作为参数执行下面看一我生产中用到的例子[zhangshk@fonova-app02 ~]$ cat nohup_run0_100.sh for i in {0...
  • 1. for循环这里写代码片参考: 1.Shell脚本中循环语句for,while,until用法
  • shell脚本之for循环

    万次阅读 2018-12-18 11:37:28
    for 命令 ...bash shell提供了 for 命令,允许你创建一遍历一系列值的循环。每次迭代都使用其中一值来执行已定义好的一组命令。下面是bash shell中 for 命令的基本格式。 for var in list do ...
  • Linux创建多个用户,并赋予随机密码,不使用循环语句 原作者:http://jackdady.blog.51cto.com/8965949/1661781 Linux创建多个用户,并赋予随机密码,要求不使用循环语句。 方法一 ...
  • 今天写点程序,声明个人是小白 发现一没有错的程序一直报错,百思不得其解。...意思是我的for循环形式只是在c99下是允许的 。 所以要修改一下我的for循环模式 c语言有很标准 以前的标准不允许for(i
  • Linux Shell for循环写法总结

    千次阅读 2012-03-26 16:41:32
    关于shell中的for循环用法很,一直想总结一下,今天网上看到上一篇关于for循环用法的总结,感觉很全面,所以就转过来研究研究,嘿嘿... 1、 for((i=1;i 2、在shell中常用的是 for i in $(seq 10) 3、for i in ...
  • linux 批量ping多个连续的IP地址

    千次阅读 2020-03-23 22:19:14
    #!/bin/bash #author:zhaoyuqin #date:20200323 #引用系统函数 .... -eq 1 ];... '{print $3}'` for num in $a $b $c do if [ $num -gt 255 ] |...批量ping多个连续的IP地址并返回值 2.写了个函数来检查IP合法性 3.练练手的~
  • 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=...
  • 成功解决for循环语句中,后几次循环输出数据一直全部为空 目录 解决问题 解决思路 解决方法 解决问题 for循环语句中,后几次循环输出数据一直全部为空 解决思路 数据为空,如果不是...
  • Linux编写shell脚本执行多个命令

    千次阅读 2020-06-04 21:22:27
    Linux下编写shell脚本批量执行多个命令

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 169,826
精华内容 67,930
关键字:

linux多个for循环

linux 订阅