<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    少年阿賓

    那些青春的歲月

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks

       for in 格式
    for 無$變量 in 字符串
    do
      $變量
    done
    一簡單的字符串 枚舉遍歷法,利用for in格式對(duì)字符串按空格切份的功能

    SERVICES="80   22   25   110   8000   23   20   21   3306   "

    for   x   in   $SERVICES    
      do     
      iptables   -A   INPUT   -p   tcp   --dport   $x   -m   state   --state   NEW   -j   ACCEPT     
      done 

      
        for variable in values   --------字符串?dāng)?shù)組依次賦值
    #!/bin/sh
    for i in a b c           字符串列表A B C 
             字符串用空格分隔,沒有括號(hào),沒有逗號(hào), 然后循環(huán)將其依次賦給變量i
             變量沒有$
    do
    echo "i is $i"
    done  
    [macg@machome ~]$ sh test.sh
    i is a
    i is b
    i is c


        for in 里,變量和*不等價(jià)
    #!/bin/bash

    for i in *.h ;
    do
    cat ${i}.h
    done  
    [macg@vm test]$ ./tip.sh
    cat: *.h.h: No such file or directory 
    $i代表的是整個(gè)路徑,而不是*.h里的.h前面的部分
    改正
    #!/bin/bash

    for i in *.h
    do
    cat $i
    done  
    [macg@vm test]$ echo hahaha >>1.h
    [macg@vm test]$ echo ha >>2.h

    [macg@vm test]$ ./tip.sh
    hahaha
    ha    
    例2:
    for i in /etc/profile.d/*.sh 
     do
      $i
    done  
     $i代表的是/etc/profile.d/color.sh,
    /etc/profile.d/alias.sh, /etc/profile.d/default.sh

              
        for in 對(duì)(命令行,函數(shù))參數(shù)遍歷
    test()
    {
            local i

            for i in $* ; do
                 echo "i is $i"
            done
      
    $*是字符串:以"參數(shù)1 參數(shù)2 ... " 形式保存所有參數(shù) 
    $i是變量i的應(yīng)用表示
    [macg@machome ~]$ sh test.sh p1 p2 p3 p4

    i is p1
    i is p2
    i is p3
    i is p4 


        for in語句與通配符*合用,批量處理文件
        批量改文件名
    [root@vm testtip]# ls
    aaa.txt  ccc.txt  eee.txt  ggg.txt  hhh.txt  jjj.txt  lll.txt  nnn.txt
    bbb.txt  ddd.txt  fff.txt  go.sh    iii.txt  kkk.txt  mmm.txt  ooo.txt
    [root@vm testtip]# cat go.sh
    for i in *.txt                 *.txt相當(dāng)于一個(gè)字符串?dāng)?shù)組,依次循環(huán)賦值給i
    do
    mv "$i" "$i.bak"       
    done
    [root@vm testtip]# sh go.sh

    [root@vm testtip]# ls
    aaa.txt.bak  ccc.txt.bak  eee.txt.bak  ggg.txt.bak  hhh.txt.bak  jjj.txt.bak  lll.txt.bak  nnn.txt.bak bbb.txt.bak  ddd.txt.bak  fff.txt.bak  go.sh        iii.txt.bak  kkk.txt.bak  mmm.txt.bak  ooo.txt.bak

        for in語句與` `和$( )合用,利用` `或$( )的將多行合為一行的缺陷,實(shí)際是合為一個(gè)字符串?dāng)?shù)組
    for i in $(ls *.txt)        
    do
    echo $i
    done
    [macg@machome ~]$ sh test
    111-tmp.txt
    111.txt
    22.txt
    33.txt
    或者說,利用for in克服` `和$( ) 的多行合為一行的缺陷


       利用for in 自動(dòng)對(duì)字符串按空格遍歷的特性,對(duì)多個(gè)目錄遍歷
    LIST="rootfs usr data data2"
       
    for d in $LIST; do         
      mount /backup/$d
      rsync -ax --exclude fstab --delete /$d/ /backup/$d/
      umount /backup/$d
    done    

    posted on 2015-01-10 22:06 abin 閱讀(4160) 評(píng)論(0)  編輯  收藏 所屬分類: shell
    主站蜘蛛池模板: 亚洲黑人嫩小videos| 免费的一级黄色片| caoporn国产精品免费| 九九九精品视频免费| 久久免费精品视频| 伊人久久免费视频| 成年丰满熟妇午夜免费视频| 国产青草视频在线观看免费影院| 亚洲精品国产福利一二区| 亚洲人成网77777色在线播放| 色噜噜综合亚洲av中文无码| 亚洲性色精品一区二区在线| 男性gay黄免费网站| 色www永久免费网站| 青草草色A免费观看在线| 亚洲精品无码永久在线观看| 黄页视频在线观看免费| 黄+色+性+人免费| 亚洲人妻av伦理| 亚洲一线产区二线产区精华| 一个人看的hd免费视频| 国产亚洲大尺度无码无码专线 | 亚洲专区先锋影音| 亚欧免费视频一区二区三区| 亚洲一区二区三区国产精品| 亚洲精品视频免费观看| 亚洲综合AV在线在线播放| 一区二区三区四区免费视频 | 亚洲午夜无码毛片av久久京东热| 天天看免费高清影视| 亚洲国产成AV人天堂无码| 成人免费网站久久久| 女人18毛片a级毛片免费| 日韩亚洲人成网站| 在线观看的免费网站| 亚洲一级二级三级不卡| 女人张开腿等男人桶免费视频| 一级毛片一级毛片免费毛片| 亚洲精品无码MV在线观看| 特a级免费高清黄色片| 91亚洲国产在人线播放午夜|