欢迎来到山村网

Shell中的for循环总结

2019-03-02 12:37:43浏览:508 来源:山村网   
核心摘要:  这篇文章主要介绍了Shell中的for循环总结,本文讲解了shell中for循环用法、shell下for循环的几种方法等内容,需要的朋友可以参

  这篇文章主要介绍了Shell中的for循环总结,本文讲解了shell中for循环用法、shell下for循环的几种方法等内容,需要的朋友可以参考下

  关于shell中的for循环用法很多,一直想总结一下,今天网上看到上一篇关于for循环用法的总结,感觉很全面,所以就转过来研究研究,嘿嘿...

  代码如下:

  for((i=1;i<=10;i++));do echo $(expr $i * 4);done

  在shell中常用的是 for i in $(seq 10)

   代码如下:

  for i in `ls`

  for i in ${arr[@]}

  for i in $* ; do

  for File in /proc/sys/net/ipv4/confaccept_redirects:'

  for File in /proc/sys/net/ipv4/conf/*/accept_redirects; do

  echo $File

  done

  echo "直接指定循环内容"

  for i in f1 f2 f3 ;do

  echo $i

  done

  echo

  echo "C 语法for 循环:"

  for (( i=0; i<10; i++)); do

  echo $i

  done

  ---------------------------------------------------------------------------------------------------------

  shell中for循环用法

  shell语法好麻烦的,一个循环都弄了一会 ,找了几个不同的方法来实现输出1-100间可以被3整除的数

  1.用(())

   代码如下:

  #!/bin/bash

  clear

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

  for

  do

  if((i%3==0))

  then

  echo $i

  continue

  fi

  done

  2.使用`seq 100`

   代码如下:

  #!/bin/bash

  clear

  for i in `seq 100`

  do

  if((i%3==0))

  then

  echo $i

  continue

  fi

  done

  3.使用while

  代码如下:

  #!/bin/bash

  clear

  i=1

  while(($i<100))

  do

  if(($i%3==0))

  then

  echo $i

  fi

  i=$(($i+1))

  done

  --------------------------------------------------------------------------------------------------------

  在shell用for循环做数字递增的时候发现问题,特列出shell下for循环的几种方法:

  1.

  复制代码 代码如下:

  for i in `seq 1 1000000`;do

  echo $i

  done

  用seq 1 10000000做递增,之前用这种方法的时候没遇到问题,因为之前的i根本就没用到百万(1000000),因为项目需要我这个数字远大于百万,发现用seq 数值到 1000000时转换为1e+06,根本无法作为数字进行其他运算,或者将$i有效、正确的取用,遂求其他方法解决,如下

  2.

  代码如下:

  for((i=1;i<10000000;i++));do

  echo $i

  done

  3.

  i=1

  while(($i<10000000));do

  echo $i

  i=`expr $i + 1`

  done

  因为本方法调用expr故运行速度会比第1,第2种慢不少不过可稍作改进,将i=`expr $i + 1`改为i=$(($i+1))即可稍作速度的提升,不过具体得看相应shell环境是否支持

  4.

  复制代码 代码如下:

  for i in {1..10000000;do

  echo $i

  done

  其实选用哪种方法具体还是得由相应的shell环境的支持,达到预期的效果,再考虑速度方面的问题。

  示例:

  代码如下:

  # !/bin/sh

  i=1

  function test_while(){

  i=1

  while [ $i ]

  do

  echo $i

  i=`expr $i + 1`

  if [ $i -ge 10 ]; then

  break

  fi

  done

  }

  function test_for(){

  i=1

  for ((i=1; i<=100; i++)); do

  echo $i

  if [ $i -ge 10 ]; then

  break

  fi

  done

  }

  function test_continue(){

  i=1

  for i in $(seq 100); do

  if (( i==0 )); then

  echo $i

  continue

  fi

  done

  }

  echo "test_while..."

  test_while

  echo "test_for..."

  test_for

  echo "test_continue..."

  test_continue

  运行结果:

   代码如下:

  test_while...

  1

  2

  3

  4

  5

  6

  7

  8

  9

  test_for...

  1

  2

  3

  4

  5

  6

  7

  8

  9

  10

  test_continue...

  10

  20

  30

  40

  50

  60

  70

  80

  90

  100

注< >:更多精彩教程请关注山村编程

(责任编辑:豆豆)
下一篇:

Python中for循环的使用方法

上一篇:

Shell常用操作符总结

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com