• shell IFS 配合 read 读文件


    参考《linux shell核心编程指南》3.5 ,无需仔细阅读,可以当做工具书使用。

    在Shell中使用内部变量IFS(Internal Field Seprator)来决定项目列表或值列表的分隔符,IFS的默认值为空格、Tab制表符或换行符。使用for循环读取项目列表或值列表时,就会根据IFS的值判断列表中值的个数,最终决定循环的次数。例如,A="hello the world",当使用空格作分隔符时,变量A的值有三列。但是,当使用字母t作为分隔符时,变量A的值就有两列。所以当使用不同的分隔符时读取数据的结果也会有很大差别,这点在编写脚本时一定要注意!IFS的多个值之间是“或”关系,所以for循环在读取列表时,数据可以使用空格分隔,或使用Tab制表符分隔,或使用换行符对数据进行分隔。因为空格、Tab制表符和换行符都属于ASCII码表中的控制字符,是不可显示的内容,所以正常使用echo命令显示该变量的值时,是看不到内容的,但是可以通过od命令将数据转换为八进制数据后再查看。

    #!/bin/bash
    
    while IFS=":" READ user pass uid gid info home shell
    do
        echo "heihei"
    done < /etc/passwd

    上面的可以联想到cat,  使用<<符号可以将数据内容重定向传递给前面的一个命令,作为命令的输入。

    cat > 1.txt << EOF
    echo "hello"
    EOF
  • 相关阅读:
    Python中matplotlib模块的简单使用
    Python中numpy模块的简单使用
    TensorFlow入门(矩阵基础)
    TensorFlow入门(常量变量及其基本运算)
    计算机视觉入门
    菜得一P!
    Hdu2097 Sky数
    Hdu2099 整除的尾数
    Hdu2098 分拆素数和
    Linux下用Bash语言实现简单排序的功能
  • 原文地址:https://www.cnblogs.com/bill2014/p/16041814.html
Copyright © 2020-2023  润新知