设为首页 收藏本站
查看: 923|回复: 0

shell for 解释

[复制链接]

尚未签到

发表于 2018-8-24 12:12:44 | 显示全部楼层 |阅读模式

  •   for 无$变量 in 字符串
  •   do
  •   $变量
  •   done
  shell 编程——for in 循环
  一简单的字符串 枚举遍历法,利用for in格式对字符串按空格切份的功能
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 in 里,变量和*不等价-------
#!/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代表的是整个路径,而不是*.h里的.h前面的部分
  改正
#!/bin/bash  
for i in *.h
  
do
  
  cat $i
  
done
[dsadm@dataStage test]$ ll  
总用量 12
  
-rw-r--r-- 1 dsadm dstgrp 143  5月 29 12:34 findjob.sh
  
-rwxrwxrwx 1 dsadm dstgrp  43  5月 29 12:52 findsh.sh
  
-rwxrwxrwx 1 dsadm dstgrp  56  5月 29 13:01 testdd.sh
  
[dsadm@dataStage test]$ more findsh.sh
  
#!/bin/bash
  
for i in *.sh
  
do
  
echo $i
  
done
  
[dsadm@dataStage test]$ ./findsh.sh
  
findjob.sh
  
findsh.sh
  
testdd.sh
  
[dsadm@dataStage test]$
  -------for in 对(命令行,函数)参数遍历-------

  •   test()
  •   {
  •   local i
  •   for i in $* ; do
  •   echo "i is $i"
  •   done
  •   }
  [macg@machome ~]$ sh test.sh p1 p2 p3 p4
  i is p1
  i is p2
  i is p3
  i is p4
[dsadm@dataStage test]$ ./testfunc.sh wen chao  
i is wen
  
[dsadm@dataStage test]$ more testfunc.sh
  
#!//bin/bash
  
test()
  
{
  
        local i
  
        for i in $1 ; do
  
             echo "i is $i"
  
        done
  
}
  
test $*
  
[dsadm@dataStage test]$
  ----
[dsadm@dataStage test]$ ./testfunc.sh wen chao fu  
i is wen
  
i is chao
  
i is fu
  
[dsadm@dataStage test]$ more testfunc.sh
  
#!//bin/bash
  
test()
  
{
  
        local i
  
        for i in $* ; do
  
             echo "i is $i"
  
        done
  
}
  
test $*
  
[dsadm@dataStage test]$
  --
  -------for in语句与` `和$( )合用,利用` `或$( )的将多行合为一行的缺陷,实际是合为一个字符串数组-------
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 自动对字符串按空格遍历的特性,对多个目录遍历-------
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
  ********Linux Shell for循环写法总结********
for((i=1;i

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-555959-1-1.html 上篇帖子: shell学习随记 下篇帖子: shell中变量类型
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表