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

时间: 2024-08-03 09:56:03

Shell中的for循环总结的相关文章

Shell中的for循环总结_linux shell

关于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

Shell中的while循环【转】

转自:http://blog.chinaunix.net/uid-25880122-id-2901409.html while循环的格式   while expression do command command ``` done 1.计数器控制的while循环    主要用于已经准确知道要输入的数据和字符串的数目.    举例 1 #!/bin/sh 2 int=1 3 while(( $int<=5 )) 4 do 5 echo $int 6 let "int++" 7 do

Shell中的for和while循环详细总结

  这篇文章主要介绍了Shell中的for和while循环详细总结,本文讲解了for循环的数字段形式.详细列出.对文件进行循环,while循环的三种使用场合等内容,需要的朋友可以参考下 一.for循环 1.数字段形式 代码如下: for i in {1..10} do echo $i done 2.详细列出(字符且项数不多)     代码如下: for File in 1 2 3 4 5 do echo $File done 3.对存在的文件进行循环 复制代码 代码如下: for shname

linux下shell中for循环实现读取文件换行

一.问题与需求: 比如有一个aa.list文件内容是: 1    2    3    4    a    b    c    d for脚本读取文件时,我想是一行一行的读入,每次循环读取一行,像第一次是1 2 3 4,第二次是a b c d 但是我这样写 for i in "$(< ./aa.list)" do     echo $i     echo 1111 done 得到结果是:  1 11111 2 11111 3 11111 4 11111 a 11111 b 1111

Linux shell编程 4 ---- shell中的循环

 1 for循环     1 for语句的结构        for variable in values;        do                  statement        done     2 for循环通常是用来处理一组值,这组值可以是任意的字符串的集合     3 for循环举例                                2 while循环     1 while循环的结构        while condition;         do  

Shell中的循环语句for、while、until实例讲解_linux shell

在编程语言中,循环语句是最基本的语法之一,在Shell(这里是Bash)中也不例外,再把以前自己写过的相关内容整理一下吧. 这里包括for/while/until循环,以及变量自增的语法实例. Shell(以Bash为例)中的循环语句一般有for.while.until这几种,偶尔还有写错语法的时候,这里结合实例来自己总结一下.也为今后使用提供一个快捷的资料获取渠道. 一.for循环语句 实例1.1 最基本的for循环: (传统的形式,for var in -) 复制代码 代码如下: #!/bi

Linux集群和自动化维2.3 Shell中的控制流结构

2.3 Shell中的控制流结构 Shell中的控制流结构也比较清晰,如下所示: if ...then... else...fi语句 case语句 for循环 until循环 while循环 break控制 continue控制 工作中用得最多的就是if语句.for循环.while循环及case语句,大家可以以这几个为重点对象来学习. if语句语法如下: if 条件1 then   命令1 else   命令2 fi if语句的进阶用法: if 条件1 then     命令1       el

linux shell中的比较符号与特殊符号介绍_linux shell

shell字符串比较.判断是否为数字 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. 整数比较 -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如:if [ "$a" -ne "$b" ] -gt 大于,如:if [ "$a" -gt "$b" ] -ge 大于等于,如:if [ "$a" -ge "$b"

shell中的各种括号的使用方法_linux shell

在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下: 1.${var} 2.$(cmd) 3.()和{} 4.${var:-string},${var:+string},${var:=string},${var:?string} 5.$((exp)) 6.$(var%pattern),$(var%%pattern),$(var#pattern),$(var##pattern) 现在分述如下: 1.Shell中变量的原形:${var}大家常见的变量形式都是$var