ITPub博客

首页 > Linux操作系统 > Linux操作系统 > [20210930]IFS= read -r line.txt

[20210930]IFS= read -r line.txt

原创 Linux操作系统 作者:lfree 时间:2021-10-08 09:13:16 0 删除 编辑

[20210930]IFS= read -r line.txt

--//放假前看了一下如标题的写法,不知道这个-r的主要作用.从网上抄的例子验证看看.

$ echo "   a b c   " | { IFS= read -r line; echo "[$line]" ; }
[   a b c   ]

$ echo "   a b c   " | { read -r line; echo "[$line]" ; }
[a b c]

--//很容易混淆,实际上IFS=,临时取消IFS设置,IFS缺省空格,tab,回车三个字符.
--//在IFS=的情况下,read -r 可以保持前面的空格.

$ echo -n  "$IFS" |xxd -c 16 -g 1
0000000: 20 09 0a                         

$ echo "   a    b   c   " | { IFS= read -r line; echo "[$line]" ; }
[   a    b   c   ]

$ echo "   a    b   c   " | { read -r line; echo "[$line]" ; }
[a    b   c]

$ echo "   a    b   c   " | { read  line; echo "[$line]" ; }
[a    b   c]

--//可以发现对于中间的空格无效.当然-r还有独特作用.例子:
$ echo "    a b\t c   " | { IFS= read   line; echo "[$line]" ; }| xxd -c 16 -g 1
0000000: 5b 20 20 20 20 61 20 62 74 20 63 20 20 20 5d 0a  [    a bt c   ].

--//有点不理解直接删除\.

$ echo "    a b\t c   " | { IFS= read -r  line; echo "[$line]" ; }| xxd -c 16 -g 1
0000000: 5b 20 20 20 20 61 20 62 5c 74 20 63 20 20 20 5d  [    a b\t c   ]
0000010: 0a                                  

--//-r 保持\不解析.

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2794819/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7970381