shell中for循环

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

1、 for((i=1;i<=10;i++));do echo $(expr $i \* 4);done
2、在shell中常用的是 for i in $(seq 10)
3、for i in `ls`

4、for i in ${arr[@]}
5、for i in $* ; do
6、for File in /proc/sys/net/ipv4/confaccept_redirects:‘
18.for File in /proc/sys/net/ipv4/conf/*/accept_redirects; do
19.echo $File
20.done
21.echo "直接指定循环内容"
22.for i in f1 f2 f3 ;do
23.echo $i
24.done
25.echo
26.echo "C 语法for 循环:"
27.for (( i=0; i<10; i++)); do
28.echo $i
29.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-10-25 01:55:21

shell中for循环的相关文章

shell中for循环总结

关于shell中的for循环用法很多,一直想总结一下,今天网上看到上一篇关于for循环用法的总结,感觉很全面,所以就转过来研究研究,嘿嘿... 1. for((i=1;i<=10;i++));do echo $(expr $i \* 4);done2.在shell中常用的是 for i in $(seq 10)3.for i in `ls` 4.for i in ${arr[@]}5.for i in $* ; do6.for File in /proc/sys/net/ipv4/confacc

Shell中的循环语句实例

1.for循环语句实例1.1 最基本的for循环 #!/bin/bash for x in one two three four do     echo number $x done 注:"for" 循环总是接收 "in" 语句之后的某种类型的字列表.在本例中,指定了四个英语单词,但是字列表也可以引用磁盘上的文件,甚至文件通配符.实例1.2 #!/bin/bash for x in /var/log/* do     #echo "$x is a file

shell中while循环引用ssh命令的坑

原理shell代码如下: #!/bin/sh cat ../androidsrc | while read line do         ip=$(echo $line | awk '{print $1}')         srcdir=$(echo $line | awk '{print $2}')         destdir=$(echo $line | awk '{print $3}')         user=$(echo $line | awk '{print $4}')  

(八)shell中的循环结构

1.for循环(1)要求:能看懂.能改即可.不要求能够完全不参考写出来.因为毕竟嵌入式并不需要完全重新手写shell,系统管理员(服务器运维人员,应用层系统级管理开发的才需要完全掌握shell) 这里将1 2 3 4 5依次打印出来 打印出当前目录文件 2.while循环(1)和C语言的循环在逻辑上无差别(2)要注意很多格式要求,譬如:while后面的[]两边都有空格,[]后面有分号分号(如果do放在一行的话),i++的写法中有两层括号. 3.echo的创建和追加输入文件(1)在shell中可以

shell中的循环语句

for语法格式 for var in list;do commands done 其中list可以包含: 1) 直接写 for alpha in a b c d;do echo $alpha done 2)变量 list="a b c d" for alpha in $list;do echo $alpha done 在shell执行的时候会进行变量替换,上面的list变量替换之后,for循环的形式和1中的形式一模一样.但是如果为$list加上了引号,即如果写为下面的形式: list=

Shell中while循环的done 后接一个重定向&lt;

转自:http://hi.baidu.com/%CE%D2%D2%AA_%D1%A7_%CF%B0/blog/item/b3b5e723bb2ed1265243c1e4.html 读文件的方法: 第一步: 将文件的内容通过管道(|)或重定向(<)的方式传给while 第二步: while中调用read将文件内容一行一行的读出来,并付值给read后跟随的变量.变量中就保存了当前行中的内容. 例如读取文件/sites/linuxpig.com.txt 1)管道的方式:      cat /sites

shell中日期循环的方式

第一种 # 这里的例子以周为循环 !/bin/bash begin_date="20160907" end_date="20170226" while [ "$begin_date" -le "$end_date" ]; do year=${begin_date:0:4} week_of_year=$(date -d "$begin_date" +%W) echo $year, $week_of_year

SHELL中的for流程控制

for循环: 在shell中用于循环.类似于其他编程语言中的for,但又有些不同.for循环是Bash中最常用的语法结构. 常用格式 格式一 for 变量 do 语句 done 格式二 for 变量 in 列表 do 语句 done 格式三 for ((变量=初始值; 条件判断; 变量变化)) do 语句 done 如果do和for想在同一行,需要这样 for   arg   in   [list] ;do commands... done arg将顺次取得list中的变量 **********

Pig 在 Shell中使用,批量加载处理文件

首先,我想达到的目的是批量的处理一个文件夹下的的许多文档,这些文档保存了我要处理的数据,因为pig是初学,,所以不知到该怎么批量的load,没有写过 自己的UDF,只能一个一个文件的load,然后处理. 但是这个肯定不是我希望的处理方式,于是联想到是不是可以将pig脚本插入到shell中然后循环执行. 最后尝试成功了,当然我相信pig的udf中可以自己定义这种load的方式,但是如果出于快速实现的目的可以 先使用这种方式. 下面是shell的代码部分: mkdir result_0925_D2