Shell中的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 in `ls *.sh`
do
          name=`echo "$shname" | awk -F. '{print $1}'`          
          echo $name
done

4.查找循环(ls数据量太大的时候也可以用这种方法)

代码如下:

for shname in `find . -type f -name "*.sh"`
do
          name=`echo "$shname" | awk -F/ '{print $2}'`         
          echo $name
done

5.((语法循环--有点像C语法,但记得双括号

代码如下:

for((i=1;i<100;i++))
do
    if((i%3==0))
    then
        echo $i
        continue
    fi
done

6.seq形式 起始从1开始

代码如下:

for i in `seq 100`
do
    if((i%3==0))
    then
        echo $i
        continue
    fi
done

二、while循环

1.while循环注意为方括号[],且注意空格

代码如下:

min=1
max=100
while [ $min -le $max ]
do
    echo $min
    min=`expr $min + 1`
done

2.双括号形式,内部结构有点像C的语法,注意赋值:i=$(($i+1))

代码如下:

i=1
while(($i<100))
do
    if(($i%4==0))
    then
        echo $i
    fi
    i=$(($i+1))
done

3.从配置文件读取,并可以控制进程数量

代码如下:

MAX_RUN_NUM=8
cat cfg/res_card_partition.cfg |grep -v '^$'|grep -v "#" | grep -v grep |while read partition
do       
                nohup sh inv_res_card_process.sh $partition >log/resCard$partition.log 2>&1 &              
                while [ 1 -eq 1 ]
                do
                                psNum=`ps -ef | grep "inv_res_card_process" | grep -v "grep" | wc -l`
                                if [ $psNum -ge $MAX_RUN_NUM ]
                                then
                                              sleep 5
                                else
                                              break
                                 fi                                       
                done               
done

三.循环控制语句

代码如下:

# break 命令不执行当前循环体内break下面的语句从当前循环退出.
# continue 命令是程序在本循体内忽略下面的语句,从循环头开始执行

(0)

相关推荐

  • linux shell流程控制语句实例讲解(if、for、while、case语句实例)

    一.shell条件语句(if用法) if语句结构[if/then/elif/else/fi] 复制代码 代码如下: if 条件测试语句 then action [elif 条件 action else action ] fi 如果对于:条件测试语句不是很清楚,可以参考:linux shell 逻辑运算符.逻辑表达式详解shell命令,可以按照分号分割,也可以按照换行符分割.如果想一行写入多个命令,可以通过"';"分割.如: 复制代码 代码如下: [chengmo@centos5 ~]$

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

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

  • Shell编程中while与for的区别及用法详解

    在shell编程中经常用到循环,常用的循环有for和while循环两种.while循环默认以行读取文件,而for循环以空格读取文件切分文件,本篇就结合现网的一些使用示例说说二者的用法和区别. 一.常用语法 1.for循环 for循环常用的语法结构有如下几种: for 变量 in seq字符串 for 变量 in `command` " " for 变量 in "$@"或"$*" for((赋值:条件:运算语句)) 2.while循环 while循

  • Shell中的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 in `ls *.sh` do           name=`echo "$shname" | awk -F. '{print $1}'`     

  • Linux shell中的printf的详细用法

    Linux shell中的printf的详细用法 一 语法 printf '输出类型输出格式' 输出内容 输出类型: %ns:输出字符串.n是数字指代输出几个字符. %ni:输出整数.n是数字指代输出几个数字. %m.n:输出浮点数.m和n是数字,指代输出的整数位数和小数 如%8.2代表共输出8位数,其中2位是小数,6位是整数. 输出格式:  二 实战 [root@localhost ~]# printf %s 1 2 3 4 5 6 123456[root@localhost ~]# prin

  • 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

  • Linux shell编程中IO和条件及循环处理的细节问题讨论

    > 與 < 差在哪? 谈到I/O redirection,不妨先让我们认识一下File Descriptor(FD).程序的运算,在大部份情况下都是进行数据(data)的处理,这些数据从哪读进?又,送出到哪里呢?这就是File descriptor(FD)的功用了. 在shell程序中,最常使用的FD大概有三个,分别为: 0: Standard Input(STDIN) 1: Standard Output(STDOUT) 2: Standard Error Output(STDERR) 在标

  • shell中循环调用hive sql 脚本的方法

    脚本tt.sh的内容如下: #!/bin/bash params=$1 for param in $params do echo $param done 运行方式为:sh tt.sh "1 2 3 4 5" 输出为: 1 2 3 4 5 所以参考上面的命令,可以把hql的脚本写为如下方式,就可以循环执行sql: 功能:查找字符串 comments 中的param第一次出现的位置 ,返回的是位置数字 #!/bin/bash params=$1 for param in $params d

  • 基于Shell中for循环的几个常用写法分享

    第一类:数字性循环 for1-1.sh #!/bin/bash for((i=1;i<=10;i++)); do echo $(expr $i \* 3 + 1); done for1-2.sh #!/bin/bash for i in $(seq 1 10) do echo $(expr $i \* 3 + 1); done for1-3.sh #!/bin/bash for i in {1..10} do echo $(expr $i \* 3 + 1); done for1-4.sh #!

  • linux shell中实现循环日期的实例代码

    下面通过一段代码给大家介绍linux shell中实现循环日期,具体代码如下所示: #!/usr/bin/env bash start_date="20180726" end_date="20180830" while [ "$start_date" -le "$end_date" ]; do stat_date=`date -d "$start_date" +%Y-%m-%d` echo $stat_da

  • linux shell 中数组的定义和for循环遍历的方法

    linux shell中的语法和普通编程语言 c/c++ java 的不太一样,平时用的不多,所以总是记不住,写脚本才会去查怎么用. 今天突然被问到数组怎么去遍历.平时写shell脚本也经常遍历数组,但是一下没答上来,被鄙视了. 所以平时学习还是好好总结吧,不能每次都问度娘谷爷.IT 知识体系较为庞大,细节的东西也太多,平时遇到问题应该的多总结记笔记. linux 中定义一个数据的语法为: variable=(arg1 arg2 arg3 ....) 中间用空格分开.数组的下标从0开始. 1 获

  • shell中的for循环用法详解

    for 命令: for i in 的各种用法 : for i in "file1" "file2" "file3" for i in /boot/* for i in /etc/*.conf for i in $(seq -w 10) -->等宽的01-10 for i in {1-10} for i in $( ls ) for I in $(< file) for i in "$@" -->取所有位置参数

随机推荐