当前位置: 首页 > news >正文

shell IFS

shell IFS

文章目录

  • shell IFS
    • 1. 简介
    • 2. 实例
      • 2.1 IFS 定制分隔符
      • 2.2 换行符做分隔符


1. 简介

  1. IFS的默认值为:空白(包括:空格,tab, 和新行),将其ASSII码用十六进制打印出来就是:20 09 0a (见下面的shell脚本)。
  2. IFS对空格的空白的处理和其他字符不一样,左右两边的纯空白会被忽略,多个连续的空白被当成一个IFS处理。
  3. S*中使用IFS中的第一个字符。
  4. awk中的FS(域分隔符)也和IFS有类似的用法和作用。
    我写了一个shell脚本来演示IFS的用法和作用,如下:
[hjq@localhost test]$ IFS=''[hjq@localhost test]$ set foo bar bam[hjq@localhost test]$ echo "$@"
foo bar bam
[hjq@localhost test]$ echo "$*"
foobarbam
[hjq@localhost test]$ unset IFS
[hjq@localhost test]$ echo "$*"
foo bar bam[hjq@localhost test]$ IFS=a
[hjq@localhost test]$ echo "$@"
foo bar bam
[hjq@localhost test]$ echo "$*"
fooabarabam
[hjq@localhost test]$ unset IFS
[hjq@localhost test]$ echo "$*"
foo bar bam

2. 实例

2.1 IFS 定制分隔符

#!/bin/shIFS='|'
text='a a a a|b b b b|c c c c'
for i in $text;do echo "i=$i";done
root@master:~# bash test2.sh
i=a a a a
i=b b b b
i=c c c c

2.2 换行符做分隔符

#!/bin/sh
conf="ABC
A B C
1|2|3
1 2 3"
echo "$conf"echo --------------
echo IFS:
echo -n "$IFS"|xxd 
echo --------------
for c in $conf;doecho "line='$c'";
doneecho --------------
#IFS=$'\n'  表示用 换行符 做分隔
#IFS="\n" 与 IFS='\n'  都是用 n 字符作为分隔
IFS=$'\n'
echo IFS:
echo -n "$IFS"|xxd 
echo --------------
for c in $conf;doecho "line='$c'";
done
root@master:~# bash test4.sh 
ABC
A B C
1|2|3
1 2 3
--------------
IFS:
00000000: 2009 0a                                   ..
--------------
line='ABC'
line='A'
line='B'
line='C'
line='1|2|3'
line='1'
line='2'
line='3'
--------------
IFS:
00000000: 0a                                       .
--------------
line='ABC'
line='A B C'
line='1|2|3'
line='1 2 3'

参考:

  • Shell中的IFS解惑
  • Linux Shell - What is IFS?
  • The Meaning of IFS in Bash Scripting
http://www.xdnf.cn/news/842041.html

相关文章:

  • LTDC/DMA2D—液晶显示***
  • Java核心技术2
  • 费马定理中值定理_达布中值定理
  • Prime95怎么使用?Prime95烤机教程
  • 起点导航系统源码最新V2.6开源可运营版
  • Perhaps, perhaps, perhaps 英国电视剧冤家对对碰主题曲
  • 企业终端安全管理软件有哪些?终端安全管理软件哪个好?
  • 编码器类型原理知识汇总(增量式/绝对式/绝对值)
  • Material Design之CollapsingToolbarLayout 相关属性和方法介绍
  • 【测试面试题】14题常见APP测试面试题(参考答案)
  • Rational Rose 2007 下载,安装及破解激活图文教程
  • USB复合设备(mass storagehid)
  • 51单片机程序烧录教程
  • 域名注册和域名备案
  • Python 将PowerPoint (PPT/PPTX) 转为HTML
  • Installshield 打包安装包心得
  • Java面试八股--07-项目篇
  • 服务器被攻击了怎么处理
  • 自组织网络(Ad hoc)
  • 丛林小英雄迪亚哥 Go Diego Go 14张DVD,朵拉的表兄弟
  • 《恋爱的犀牛》情节和语录
  • 李开复:看好视频网站在中国未来的发展
  • 从零开始学大数据框架Hudi,这些学习网站,助你一臂之力!
  • 8个免费在线编程游戏网站,让每个人都可以学习编程
  • Dreamweaver CS6破解教程[序列号+破解补丁]
  • 音视频编解码技术(一):MPEG-4/H.264 AVC 编解码标准
  • 程序设计基础(c语言)(第3版)课后习题答案
  • [经验]Mpx200上网记
  • Windows系统进程与服务
  • javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈