linux中for的用法

关于linux
bash shell
中的for语句

linuxshell是必不可少的一部分,但是在bash shell中有whileforuntil等循环命令,今天就介绍一下关于for的一些用法。文中任何错误希望大佬们一一指出,不胜感激。

bash
shell
中提供了for命令,用于创建通过一系列值重复的循环,每次重复使用系列中的一个值执行一个定义的命令集。

for语句的基本格式如下:

for………in
list

do

       commands

done

在参数list中提供一系列用于迭代(上一个输出的结果,这一句用来输入)的值。指定列表中的值有几种不同的方法。

一.读取列表中的值。

for命令的最基本使用方法是通过在for命令中定义一列值来迭代。如下图↓

linux中for的用法

执行后如图赋予t1的值一一被输出出来!

linux中for的用法

若在列表中的值进行迭代时,将其他值赋予该变量还可以继续使用,迭代的值是最后一个值。

linux中for的用法

输出结果如下:

linux中for的用法

二.读取列表中的复杂值。

若在shell中有特殊符号并且要前后一起输出(下图)该怎么办呢?

                linux中for的用法    

                linux中for的用法

竟然无法执行,若遇到\ ‘ , .等特殊符号时,可以使用反斜杠\来转义特殊字符。或者用双引号来定义使用上图中的单引号

            linux中for的用法

若单词之间有空格必须一起输出必须要有引号包围。

 

三.变量读取列表

for语句来实现 从一个列表中读取变量值,通过列表迭代

    linux中for的用法

执行结果如下图

            linux中for的用法

四.读取命令中的值

for语句中可以调用不是本文件中的值,即其他文件,把该文件中的值调用赋予一个变量在调用该变量就可以在本文件使用。如下图 

        linux中for的用法

这是我创建的一个名字为can的文件

        linux中for的用法

t4中把can中的值赋予file之后在for中调用也可以输出出来   如下图:

        linux中for的用法

五. 改编字段分隔符

此内容博主刚了解 ,错误内容还望指出,谢谢大佬们。

字段分隔符一共有三:空格,制表符(指Tab),换行符(enter或者回车)在shell中若是出现回车,空格等脚本会认为是在换行或者在启动新的数据段,若处理包含空格的文件名时就会出现干扰。列出如下图:我创建了两个文件  can
c
)包含空格的文件名

        linux中for的用法
        linux中for的用法

当我在脚本中调用can c这个文件时  即使加上双引号还是输出了can中的代码和输出内容如图:(我把IFS注释掉了)

        linux中for的用法
        linux中for的用法

但是,当我把注释取消即可正常输出can c的内容如下图:

        linux中for的用法
     linux中for的用法

在文件中有空格也是忽略直接输出

    linux中for的用法

没有IFS

        linux中for的用法

加上IFS的注释后

        linux中for的用法

can文件中的每行空格都当成分隔符不输出

六.使用通配符读取目录

for不仅可以读取文件还可以用通配符读取目录,尤其是不知道文件中的文件名时。本人在根下创建了一个app目录在里面写了几个脚本和一个目录怎么用for来显示出来呢 ?

当前路径

        linux中for的用法

app下的文件数量种类

     linux中for的用法

脚本如下

linux中for的用法

把目录文件赋予file在通过if then echo分类输出出来

执行结果如下图:

    linux中for的用法

以上就是我所知的for用法,欢迎补充。

一定不吝赐教!

原创文章,作者:mengL,如若转载,请注明出处:http://www.178linux.com/81029

(0)
mengLmengL
上一篇 2017-07-15
下一篇 2017-07-15

相关推荐

  • linux下的打包与压缩

    linux压缩或解压缩工具有很多,除了已经很少有人使用的compress外,现在常用的还有tar,bzip2,xz 和gzip等,我们来说说它们的用法。 先来说bzip2。bunzip2和bzcat可以由bzip2指定选项来执行同样的结果,这里只介绍bzip2的用法。使用bzip2这个工具创建的文件以.bz2,.bz,.tbz,.tar.bz2或者…

    Linux干货 2017-04-16
  • 网络与进程管理相关命令使用

    网络管理之netstat命令 netstat     -print network connections,routing tables,interface statistics,masquerade connections and multicast memberships     netstat…

    Linux干货 2016-09-07
  • 精解局域网访问及共享(三)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/155109    上一节中的2种情况都是默认的简单共享,下面我们着重分析一下高级共享方式下的各种访问情况。毕竟这种方式用的很普遍,而且在权限…

    Linux干货 2015-03-25
  • Linux 基础知识(六.三)

    按找下列要求,写一个脚本 (1)创建目录/tmp/testdir-当前日期时间 (2)在此目录创建100个空文件:file1-file100 (3)显示/etc/passwd文件中位于偶数行的用户的用户名 (4)创建10个用户:user10-user19,密码同用户名 (5)在/tmp创建10个空文件file10-file19 脚本如下: #!/bin/ba…

    Linux干货 2016-11-14
  • mysql 备份脚本的编写

        最近在为做一些边边角角的工作,现在有一个需求要每天把mysql的数据库dump出来到备份机器上面去. 看似简单的任务也潜在了很多的需求,整理如下:     自动运行-crontab      脚本的环境变量设置-由于通过crontab 启动执…

    Linux干货 2015-12-15
  • Linux运维学习历程-第五天-Linux文件系统与管理

    Linux运维学习历程-第五天-Linux文件系统与管理 本章内容 文件系统  文件和目录被组织成一个单根倒置树结构从根目录下开始,用“/” 表示根文件系统(rootfs) :root filesystem,用路径分隔的 /;遵循FHS: (Filesystem Hierarchy Standard)  文件系统分层结构:LSB Linu…

    Linux干货 2016-08-04