Shell中的for循环的用法-创新互联

本篇内容主要讲解“Shell中的for循环的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Shell中的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


到此,相信大家对“Shell中的for循环的用法”有了更深的了解,不妨来实际操作一番吧!这里是创新互联建站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

网站题目:Shell中的for循环的用法-创新互联
当前链接:https://www.cdcxhl.com/article24/dscsce.html

成都网站建设公司_创新互联,为您提供静态网站外贸建站网站建设面包屑导航定制开发虚拟主机

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站优化排名