精华内容
下载资源
问答
  • shell脚本for循环Continuing on from our previous tutorials, let’s understand the for loop in shell scripts today. We’ve already covered the while loop previously and the for loop has similar usage ...

    shell脚本for循环

    Continuing on from our previous tutorials, let’s understand the for loop in shell scripts today. We’ve already covered the while loop previously and the for loop has similar usage with a different format.

    继续我们之前的教程,今天让我们了解shell脚本中的for循环。 我们之前已经介绍过while循环 ,而for循环的用法与此类似,但格式不同。

    入门 (Getting started)

    Loops are widely used by programmers across the world. Adding loops to your shell script helps you to make your code efficient by reducing the amount of code you need to write.

    循环被全世界的程序员广泛使用。 在shell脚本中添加循环可以通过减少需要编写的代码量来帮助您提高代码效率。

    This is done by automating the execution of a set of statements in your shell script instead of writing them repeatedly. 

    这是通过在shell脚本中自动执行一组语句来完成的,而不是重复编写它们。

    We use the for loop in shell scripts for cases when we know the number of times we wish our loop to run. This number of iterations can be specified by a list of items. Let us understand the working of the for loop in shell scripts.

    当我们知道希望循环运行的次数时,可以在外壳程序脚本中使用for循环。 可以通过项目列表指定此迭代次数。 让我们了解shell脚本中for循环的工作方式。

    如何在Shell脚本中创建for循环? (How to Create a for Loop in Shell Scripts?)

    There are two ways to run a for loop in shell scripts.

    有两种方法可以在Shell脚本中运行for循环。

    1.使用“ in”关键字 (1. Using the “in” Keyword)

    
    for var in val_1 val_2 val_3 ... val_n
    do
        statement 1
        statement 2
        statement 3
    done
    

    Here we have four keywords, namely for, in, do and done.

    在这里,我们有四个关键字,分别是for,in,dodone

    1. The first keyword ‘for’ specifies the beginning of the loop when we run our shell script.

      第一个关键字“ for”指定了运行Shell脚本时循环的开始。
    2. It is followed by a variable that can take values specified by val_1, val_2 and so on.

      紧随其后的是一个变量,该变量可以采用val_1,val_2等指定的值。
    3. The keyword in specifies the beginning of this list of values. These values must be separated by ‘spaces’, as any other character such as a comma will be treated as part of the ‘value’.

      关键字in指定此值列表的开头。 这些值必须用“空格”分隔,因为其他任何字符(例如逗号)都将被视为“值”的一部分。
    4. The keyword do is used before the statements that we wish to execute

      在要执行的语句之前使用关键字do
    5. done signifies the end of our loop.

      完成表示循环已结束。

    2.使用C风格的初始化 (2. Using C-style initialization)

    The other way to use the for loop in shell scripts is to incorporate a C programming approach. This is how the syntax would look.

    在外壳程序脚本中使用for循环的另一种方法是合并C编程方法。 这就是语法的样子。

    
    for (( initialization parameter; condition; updation))
    do
        statement 1
        statement 2
        statement 3
    done
    

    Here, we replace the “in” keyword for a more C-like approach.

    在这里,我们将“ in”关键字替换为更类似于C的方法。

    1. Before the loop begins the first iteration, the initialization parameter is used to initialize a variable that will act as a counter for the number of loops that our loop runs for

      在循环开始第一次迭代之前,初始化参数用于初始化变量,该变量将作为我们循环运行的循环次数的计数器
    2. As long as the condition evaluates to TRUE, the loop will execute all the statements written between “do” and “done“.

      只要条件的计算结果为TRUE,循环就会执行在“ do ”和“ done ”之间编写的所有语句。
    3. Finally, the last parameter “updation” is used to update the variable acting as the counter.

      最后,最后一个参数“ updation ”用于更新用作计数器的变量。

    Shell脚本中的for循环示例 (Examples of for loop in shell scripts)

    We are now familiar with the concept and the working of the for loop in shell scripts. But to properly understand a command, you need to be able to use it in your code.

    现在,我们已经熟悉了shell脚本中for循环的概念和工作原理。 但是要正确理解命令,您需要能够在代码中使用它。

    Let’s go through some examples of practical usage of for loops

    我们来看一些for循环的实际用法示例

    1.创建一个基本的for循环 (1. Creating a basic for loop)

    We start with something simple and basic. Here, we use the first method of using the for loop.

    我们从简单和基础开始。 在这里,我们使用第一种使用for循环的方法。

    We use the keyword in to run a loop for 5 iterations while telling the user the number of times the loop has been executed. This is how the loop should look in your code.

    在告诉用户执行循环的次数时,我们使用关键字in来运行一个循环5次迭代。 这就是循环在代码中的外观。

    
    #!/bin/sh
    for i in 1 2 3 4 5
    do
      echo "Executing loop $i time(s)"
    done
    
    For Loop Basic
    For Loop Basic
    对于循环基本

    2.在Shell脚本中使用for循环生成数字的随机列表 (2. Generating a Random List of Numbers using for Loop in Shell Scripts)

    Now we move towards an example for using the C-like variant of the For loop. We all know how we can use inbuilt commands to generate pseudo-random numbers with a shell script.

    现在我们来看一个使用For循环的类似C的变体的示例。 我们都知道如何使用内置命令通过Shell脚本生成伪随机数。

    Here, we will use this knowledge to generate a list of 5 pseudo-random numbers.

    在这里,我们将使用此知识来生成5个伪随机数的列表。

    
    #!/bin/sh
    for (( i=1; i <= 5; i++ ))
    do
     echo "Randomiser iteration $i: $RANDOM"
    done
    
    
    For Loop Randomizer
    For Loop Randomizer
    对于循环随机化器

    3.使用for Loop打印文件和目录的名称 (3. Printing the names of Files and Directories using for Loop)

    Dealing with a large number of files and directories one by one takes a long time. Typing the same command over and over is a waste of time.

    一个接一个地处理大量文件和目录需要很长时间。 一遍又一遍地键入相同的命令是浪费时间。

    So we should take advantage of the for loop to automate the execution of a command. Let us have a look at the sample shell script below to print the name of all the files and directories present in your home directory.

    因此,我们应该利用for循环来自动执行命令。 让我们看一下下面的示例shell脚本,以打印您的主目录中存在的所有文件和目录的名称。

    
    #!/bin/sh
    i=1
    cd ~
    for item in *
    do
        echo "File number $((i++)) : $item"
    done
    
    For Loop Directories
    For Loop Directories
    对于循环目录

    结论 (Conclusion)

    The for loops are a powerful tool for shell programmers. It is the best tool to use when you need to execute a set of statements a fixed number of times.

    for循环是Shell程序员的强大工具。 当您需要执行一组固定次数的语句时,它是最好的工具。

    By automating the execution of specific statements you not only need to write less code, but you also free up time which can be used in more important tasks such as debugging. 

    通过自动执行特定语句,您不仅需要编写更少的代码,而且还可以节省时间,这些时间可以用于更重要的任务(如调试)中。

    We hope this tutorial was able to help you understand how to use the For loop function. If you have any queries, feedback or suggestions, feel free to reach out to us in the comments below.

    我们希望本教程能够帮助您了解如何使用For循环功能。 如果您有任何疑问,反馈或建议,请随时通过以下评论与我们联系。

    翻译自: https://www.journaldev.com/38459/for-loop-in-shell-scripts

    shell脚本for循环

    展开全文
  • 主要介绍了Shell脚本for循环语句简明教程,简洁易懂,非常适合刚入门的shell新手,需要的朋友可以参考下
  • 关于shell脚本for循环

    2017-09-07 02:28:09
    shell脚本中for循环是怎么处理的例如: #cat a.txt 1 12 2 22 #cat test.sh #!/bin/bash for i in `awk '{print $0}'` do echo $i done #./test.sh 1 12 2 22 为什么其输出结果不为: 1 12 2 22...
  • 一个for循环实现一个目录下的文件和目录遍历,很实用[root@localhost shell_order]# cat test27.sh #!/bin/bash #print the directory and file for file in /home/hustyangju/* do if [ -d "$file" ] then echo...
    一个for循环实现一个目录下的文件和目录遍历,很实用
    [root@localhost shell_order]# cat test27.sh 
    #!/bin/bash
    #print the directory and file
    
    for file in /home/hustyangju/*
    do
    if [ -d "$file" ]
    then 
      echo "$file is directory"
    elif [ -f "$file" ]
    then
      echo "$file is file"
    fi
    done
    [root@localhost shell_order]# ./test27.sh 
    /home/hustyangju/array is directory
    /home/hustyangju/menuwindow-7.12 is directory
    /home/hustyangju/menuwindow-build-desktop is directory
    /home/hustyangju/shell_order is directory
    [root@localhost shell_order]# 
    

    递归遍历

    #! /bin/bash
    read_dir(){
        for file in `ls $1`       #注意此处这是两个反引号,表示运行系统命令
        do
            if [ -d $1"/"$file ]  #注意此处之间一定要加上空格,否则会报错
            then
                read_dir $1"/"$file
            else
                echo $1"/"$file   #在此处处理文件即可
            fi
        done
    }
    #读取第一个参数
    read_dir $1

     

    展开全文
  • shell脚本for循环知识

    2017-04-22 14:15:46
    取cat file.txt的每一行进行for循环 for line in $(cat file.txt);do  echo $line done 应用例子: 用shell脚本循环将111.txt的ip添加到ipset list,代码如下: #!/bin/sh for line in $(cat 111.txt);do...

    取cat file.txt中的每一行进行for循环

    for line in $(cat file.txt);do

        echo $line

    done

    应用例子:

    用shell脚本循环将111.txt中的ip添加到ipset list,代码如下:

    #!/bin/sh
    for line in $(cat 111.txt);do
        ipset add blackip  $line
    done
    #iptables -A INPUT -m set --match-set blackip src -j DROP

    展开全文
  • shell脚本for循环中如何调用别的程序

    千次阅读 2012-05-02 17:15:03
    我写一个shell脚本for循环,想在for循环中调用我提前写好的一个别的程序。程序文件名是 hello.c如下: #!/bin/bash i=1 for((i=1;i do ```` done 请问hello.c文件我该如何添加到这段脚本中

    最近在做并行计算方面的编程,需要计算一个程序执行n次所用的平均时间,想到用shell脚本来实现,在网上发现了问题的解决方法。

    问题描述:

    我写一个shell脚本for循环,想在for循环中调用我提前写好的一个别的程序。程序文件名是 hello.c如下:

    #!/bin/bash

    i=1

    for((i=1;i<=300;i++));

    do ````

    done

    请问hello.c文件我该如何添加到这段脚本中,才能反复调用这个程序?是添加文件名还是把hello.c中的内容加到脚本中?

    问题解答:

    把你的.C文件编译成可执行文件,比如你将hello.c编译成文件名为hello的可执行文件,且该可执行文件在目录/usr/bin下,你就可以这么来重复调用该程序:

    #!/bin/bash

    i=1

    for((i=1;i<=300;i++));

    do /usr/bin/hello #文件路径不限

    done

    展开全文
  • #(这种后台执行的循环是错误的) done 2.for i in $(seq 1 10) seq num1 num2:从num1累加到num2,每次累加1; 必须带有取值$符号:说明是值 输出:9行888 3.for i in {1..10} {num1..num2}:从num1...
  • 今天小编就为大家分享一篇基于Shell中for循环的几个常用写法分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 文章目录echo( 输出字符串和提取Shell变量值)for循环语句for循环语句题目 echo( 输出字符串和提取Shell变量值) 格式 echo [参数] [字符串] 常用参数 echo -n 表示不换行输出 echo -e 输出转义字符,将转义后的内容...
  • shell中for循环,读取一整行

    万次阅读 2017-08-16 14:39:56
    shell中for循环,读取一整行 shell中for循环的默认分隔符是:空格、tab、\n 需求是只以\n作为分隔符 shell for循环以\n作为分割符,方式一: 文件aa.sh [html] view plain copy ...
  • #fortimes循环次数 fortimes=1000 #被ping的ip地址 ipaddress=223.5.5.5 #ping之前清掉上次的ping日志 rm -rf /root/xscript/pingResult.txt xPing(){ xResult=`ping -c $xtimes $ipaddress | sed -n -e '${x;1!p...
  • 编写了一个简单的shell脚本来执行命令: 添加权限,执行报错: 直接使用./test.sh提示:not found。 原因是由于我是用的设备是openwrt,不支持bash。将脚本第一行修改为: #!/bin/sh之后可以./test.sh执行,...
  • 在测试写好的 Shell 脚本时,一切都是正常的,但是在写进 crontab 定时任务里时,就出现了这个 for 循环不生效的问题,下面分享下可能的原因和解决方法。一、相关阅读关于 crontab 和循环日期操作可以参考之前的运维...
  • echo " 本脚本用来批量创建系统用户" echo "成功创建用户:" > /root/user_name read -ep "请输入要创建的用户数量:" sl for i in `seq 1 $sl` do grep "user-$i" /etc/passwd &> /dev/null if [ $? -ne ...
  • shell脚本 for循环迭代文件

    千次阅读 2016-10-28 20:45:24
    test -d dir echo $? for A in `ls` do test -d $A if [ $? -eq 0 ] then echo director is $A else echo file is $A fi done
  • linux 系统shell脚本for循环练习

    千次阅读 2019-01-08 21:12:17
    练习脚本1: root@server0 ~]# vim for.sh #! /bin/bash for a in 1 2 3 4 5 6 do touch /root/pan $a.txt echo $a.txt done [root@server0 ~]# ./for.sh 1.txt 2.txt 3.txt 4.txt 5.txt 6...
  • for i in [0-9]*; #1 do cd $i; #2 nohup run.sh &; #2 cd ../; done
  • -ne 0 ] && groupadd class &> /dev/null //如果上一个命令执行结果不为0,说明没有这个组,所以新建class组,并将内容导入空文件 for i in $(seq 5) do useradd u$i -G class &> /dev/null //-G表示指定为该用户...
  • shell中for循环用法

    2013-06-02 13:18:39
    shell中for循环用法 shell语法好麻烦的,一个循环都弄了一会 ,找了几个不同的方法来实现输出1-100间可以被3整除的数 1.用(()) #!/bin/bash for((i=1;i do if((i%3==0)) then echo $i continue fi done ...
  • 一,for循环 使用for循环语句时,需要指定一个变量及取值列表,针对每个不同的取值重复执行相同的命令序列,直到变量值用完退出循环。然后在这里取值列表也被称为for语句的执行条件。 for循环是固定循环,也就是在...
  • shell中for循环总结

    千次阅读 2016-03-12 13:27:28
    关于shell中for循环用法很多,一直想总结一下,今天网上看到上一篇关于for循环用法的总结,感觉很全面,所以就转过来研究研究,嘿嘿… 1、 for((i=1;i;i++));do echo (expr(expr i *4);done 2、在shell中常用的...
  • shell脚本for循环对变量动态命名

    千次阅读 2017-12-28 16:10:00
    这个问题找了好久才找到了解决方法,记录在这里...for (( i=0; i; i=i+1 ))  do  eval ip_eth${i}=23 eval echo $ip_eth${i}  done 注意:打印的时候也需要加上eval 这样可以实现动态命名。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 124,259
精华内容 49,703
关键字:

shell脚本for循环