Shell 脚本中有个变量叫IFS(Internal Field Seprator) ,内部域分隔符。

案例1

新建文件domains.txt

读取

#!/bin/bash
# setupapachevhost.sh - Apache webhosting automation demo script
file=/tmp/domains.txt# set the Internal Field Separator to |
IFS='|'
while read -r domain ip webroot ftpusername
doprintf "*** Adding %s to httpd.conf...\n" $domainprintf "Setting virtual host using %s ip...\n" $ipprintf "DocumentRoot is set to %s\n" $webrootprintf "Adding ftp access for %s using %s ftp account...\n\n" $domain $ftpusernamedone < "$file"

执行

案例2

IFS 在 "$@" And "$*" 上的应用

  • $@ and $* 是特殊的命令行参数
  • The $@ 保存了所有传给脚本的参数
  • The $* 保存了所有传给脚本的参数
  • 两者区别在哪里呢?
#!/bin/bash
# ifsargs.sh - Cmd args - positional parameter demo
echo "Command-Line Arguments Demo"
echo "*** All args displayed using \$@ positional parameter ***"
echo $@
echo "*** All args displayed using \$* positional parameter ***"
echo $*

执行

chmod +x ifsargs.sh
./ifsargs.sh honda yamaha harley-davidson kawasaki

结果

看起来一样,再看

#!/bin/bash
# ifsargs2.sh - Cmd args - positional parameter demo#### Set the IFS to | ####
IFS='|'echo "Command-Line Arguments Demo"echo "*** All args displayed using \$@ positional parameter ***"
echo "$@"        #*** double quote added ***#echo "*** All args displayed using \$* positional parameter ***"
echo "$*"        #*** double quote added ***#

执行

chmod +x ifsargs2.sh
./ifsargs2.sh honda yamaha harley-davidson kawasaki

结果

  • $@ expanded as "$1" "$2" "$3" ... "$n"
  • $* expanded as "$1y$2y$3y...$n", where y is the value of IFS variable i.e. "$*" is one long string and $IFS act as an separator or token delimiters.

参考:

https://bash.cyberciti.biz/guide/$IFS

Shell ifs 用法相关推荐

  1. shell实例第22讲:shell中分隔符IFS用法

    shell中分隔符IFS用法 1.什么是IFS? IFS在shell中是分隔符的意思,即IFS这个变量中存放了分隔符. 2.IFS是全局变量还是局部变量? (1)linux中变量分两种:全局变量env ...

  2. linux shell ifs,【shell】IFS和$*变量

    Shell脚本中有个变量叫 IFS(Internal Field Seprator),内部域分隔符. 完整定义: The shell uses the value stored in IFS, whi ...

  3. cut最后几位 shell_详解Shell cut用法

    详解Shell cut用法 cut是以每一行为一个处理对象的,这种机制和sed一样. cut接受三个定位方法: 1)byte: -b 2)characters: -c 3)fields: -d eg: ...

  4. linux shell ifs,Shell 的 IFS 变量

    今天把一个 shell script 从 Linux 移植到 Solaris 时遇到一些小问题: args=`tail -n 1 $file | head -1` tail 的用法有点不一样.Sola ...

  5. 常见Shell命令用法总结

    2019独角兽企业重金招聘Python工程师标准>>> 常见命令用法总结 -----  目录:  --- 关于grep的总结   关于egrep的总结   关于tr的总结  关于so ...

  6. linux shell IFS分隔符 简介 IFS=$‘\n‘ 使用换行符做分隔符

    IFS是internal field separator的缩写,shell的特殊环境变量.ksh根据IFS存储的值,可以是空格.tab.换行符或者其他自定义符号,来解析输入和输出的变量值. 用IFS定 ...

  7. [shell]shell 中| || () {} 用法以及shell的逻辑与或非

    转自:https://www.jianshu.com/p/617c1ee1e46e | 运算符 管道符号,是unix一个很强大的功能,符号为一条竖线:"|". 用法: comman ...

  8. 详解shell IFS分隔符

    文章目录 一.概念 二.查看IFS的值 三.修改IFS值 `3.1.未修改IFS值的情况` `3.2.修改IFS值为:后的情况` 四.还原IFS值 参考书籍:<Linux Shell核心编程指南 ...

  9. linux shell ifs,shell - IFS分隔符

    IFS是internal field separator的缩写,shell的特殊环境变量.ksh根据IFS存储的值,可以是空格.tab.换行符或者其他自定义符号,来解析输入和输出的变量值. 用IFS定 ...

最新文章

  1. dotnet core Linux下图片验证码解决方案
  2. Log Cauchy分布的一个Hierarchical模型:LC=Gamma+Gamma+Unif
  3. Flexbox 最简单的表单
  4. python下载图片到文件夹_请教大佬:下载图片,运行后文件夹创立了,但里边没有图,为什么...
  5. concurre分段锁 put 流程图_一道有趣的笔试题(三)、锁存器Latch
  6. 拓端tecdat|如何利用深度学习诊断心脏病
  7. Oracle数据库常用sql语句
  8. Android物联网应用程序开发(智慧城市)—— 购物信息的存储界面开发
  9. VB语言写CRC16校验
  10. Flutter 本地小说阅读器
  11. PDF虚拟打印机怎么保存文件
  12. Java之打印指定月份日历
  13. pc登录2个微信客户端
  14. 利用Jmeter进行压力测试(基础版)
  15. 移动端自适应方案(转载)
  16. 前端数字转为中文大写
  17. 回望来时的路:构建之法东北师大站 2016春季学期
  18. 事情永远都没有想象中那么好
  19. RabbitMQ--扩展--11--均衡负载
  20. 笔记本电脑C盘变红或变满,怎么处理?

热门文章

  1. JAVA通过poi实现excel表格制作并且将图片放入到指定的单元格中(可以循环插入)
  2. idea 右侧的maven没有dependencies
  3. blender使用小技巧
  4. 基于Arduino Uno开发板的红外遥控开发
  5. 2021年中国全自动棉纱缠绕机市场趋势报告、技术动态创新及2027年市场预测
  6. 快速上手Linux核心命令(九):文件备份与压缩
  7. 用U盘装win10计算机重启,u盘安装win10系统教程_硬盘安装win10系统图文教程 - 系统之家...
  8. Linux文件目录颜色的含义
  9. solr整合paoding分词注意的一些细节
  10. Idea使用系统应用打开md文件