`
zhengdl126
  • 浏览: 2539239 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

字段分隔符IFS和循环

 
阅读更多

Shell的内部域分隔符可以是空格、制表符和换行符。它可以作为命令的分隔符用在例如read、set和for等命令中。如果在列表中使用不同的分隔符,用户可以自己定义这个符号。在修改之前将IFS原始符号的值保存在另外一个变量中,这样在需要的时候还可以还原。

 


    见如下示例脚本:
    /> cat > test9.sh
    names=Stephen:Ann:Sheryl:John    #names变量包含的值用冒号分隔。
    oldifs=$IFS                                    #保留原有IFS到oldifs变量,便于后面的还原。
    IFS=":"                            
    for friends in $names                      #这是遍历以冒号分隔的names变量值。   
    do
        echo Hi $friends
    done
    IFS=$oldifs                                    #将IFS还原为原有的值 空格。
    set Jerry Tom Angela
    for classmates in $*                      #再以原有IFS的值变量参数列表。
    do
        echo Hello $classmates
    done

分享到:
评论

相关推荐

    处理Shell脚本中带有空格的变量(bash脚本)

    首先,问题出在当Bash默认使用内部字段分隔符(IFS)来分割命令行参数或变量时,它会将空格视为分隔符。在上述示例中,`for`循环尝试按空格拆分`$allAudioFile`变量,导致文件名被错误地解析为多个独立的部分。 ...

    Linux Shell批量编译

    IFS(Internal Field Separator)是Shell的一个内置变量,用于定义字段分隔符。在脚本中,通过修改IFS变量的值,可以改变路径分隔符,这对于正确处理包含特殊字符的路径非常重要。例如,当遍历子目录时,通过设置IFS...

    linux_command_shell_script:常用的linux命令和shell脚本

    linux命令和shell脚本的提示常用的linux命令和shell脚本注意: MarkDown由[stackedit]( ... IFS-内部/输入字段分隔符。 $ IFS变量通常与bash循环或read或printf内置命令一起使用。解析命令行参数您可以按照4个步骤编写

    sed awk高级编程案例

    而awk则可以通过设置字段分隔符并打印第六个字段(即用户目录)的方式实现。具体到编写循环,可以在shell脚本中通过读取文件并逐行处理来完成,例如使用while循环和IFS变量来分割每行的不同字段。 其次,将文本文件...

    shell 使用指定的分割符来分割字符串的方法

    通过循环和条件判断,我们可以逐个提取出每个由逗号分隔的字段。 总结,Shell中分割字符串可以根据实际情况选择合适的方法。对于不包含空格的字符串,可以使用字符串替换或改变IFS的方式;而对于包含空格的字符串,...

    awk,sed,grep总结

    awk可以使用内置变量,如字段分隔符($IFS)和记录分隔符(RS),以及自定义变量。它还支持条件语句(if-else)和循环(for、while)。awk的字段操作能力非常强大,可以方便地处理和提取数据。 ## 2. grep grep...

    Shell program 13问

    Shell会根据IFS(内部字段分隔符)将命令行拆分成单词,处理特殊字符,然后执行命令。 Shell脚本允许用户编写一系列命令,实现自动化任务,比如文件管理、系统维护、数据处理等。在脚本中,可以使用条件语句(if......

    在Shell中分割字符串的例子

    IFS变量定义了Shell在读取时默认的字段分隔符。我们可以临时修改IFS变量,使其等于分隔符,然后将字符串赋值给一个变量,这样字符串会被自动按照IFS分隔。恢复IFS到原来的值是非常重要的,以防影响后续的命令。下面...

    shell编程(超经典)

    环境变量如`PATH`、`HOME`、`IFS`(内部字段分隔符)等,在Shell编程中扮演着关键角色。通过修改这些变量,可以改变Shell的行为,比如`PATH`用于指定命令搜索路径,`IFS`则影响文本处理时的字段分割规则。 #### ...

    shell脚本基础入门 详细介绍完整版

    - IFS(internal field separator):内部字段分隔符,用于决定Shell如何读取输入数据。 ### 处理用户输入 Shell脚本可以接收用户输入,常用的有: - 命令行参数:使用`$1`, `$2`, `$3`等接收输入参数。 - 特殊参数...

    linux AWK 教程

    在 Linux/Unix 环境下,可以通过设置环境变量来改变 AWK 的行为,比如设置 `IFS`(输入字段分隔符)来改变默认的分隔符。 #### 5. AWK 运算符 AWK 支持多种运算符,包括算术运算符、关系运算符和逻辑运算符等。 #...

    linux shell 编程

    7. **数组**:尽管Bash不支持传统的数组,但可以通过巧妙的方法实现类似功能,例如使用IFS(内部字段分隔符)和特殊变量@或*来处理一维数组。 8. **文件测试运算符**:用于检查文件属性,如是否存在(-e)、是否可...

    linux shell 编程教材配套PPT

    9. **Shell编程最佳实践**:如何编写清晰、可维护的Shell脚本,包括良好的注释习惯、避免使用IFS(内部字段分隔符)默认行为等。 10. **案例分析**:通过实际例子,演示如何使用Shell解决日常系统管理中的问题,如...

    Linux read命令的使用

    IFS变量默认情况下将空格、制表符和换行符作为字段分隔符。如果未指定IFS,read命令会使用默认值。 在`read`命令的基本用法中,你可以为每个字段指定一个变量,如`read var1 var2 var3`,这样第一字段会被赋值给`...

    shell编程简介

    - `IFS`:内部字段分隔符,默认为空格、制表符和换行符。 - `MAIL`:邮件存储路径。 - `PATH`:命令搜索路径。 - `PS1`和`PS2`:shell提示符。 - `TERM`:终端类型。 - `$!`:最后一个子进程的进程号。 - `$#`:传递...

    Linux期末学习速成

    - **IFS (Internal Field Separator)**:理解IFS在处理输入字段分隔符时的作用。 - **for循环**:学习如何在shell脚本中使用for循环来处理文件中的每一行。 - **函数定义与调用**:掌握如何定义和调用shell函数。 #...

    我的shell编程基础

    - `IFS`:内部字段分隔符,默认为空格、制表符和换行符。 - `MAIL`:邮件存放路径。 - `PATH`:命令搜索路径。 - `PS1`:主要提示符。 - `PS2`:继续提示符。 - `TERM`:终端类型。 #### 四、Shell 脚本编程 ...

    shell脚本编程电子书

    - `IFS` (Internal Field Separator):内部字段分隔符,默认为空格、制表符和换行符。 - `MAIL`:邮件文件路径。 - `PS1` 和 `PS2`:分别代表第一行提示符和第二行提示符。 - `TERM`:终端类型。 ##### 3. 保留...

Global site tag (gtag.js) - Google Analytics