Linux - bash - 小坑: IFS
1. 概述
- for 循环读取文件内容时, 输出被打得稀碎
2. 场景
需求
- 读入文件
- 逐行显示
源文件
Continuous Delivery with Docker and Jenkins
Jenkins 2 Up and Running
Jenkins 2.x Continuous Integration Cookbook(3rd)
Jenkins Fundamentals
脚本
#!/bin/bash for line in `cat ${1}`
do
echo ${line}
done问题
输出的结果, 是这样的
Continuous
Delivery
with
Docker
and
Jenkins
Jenkins
2
Up
and
Running
Jenkins
2.x
Continuous
Integration
Cookbook(3rd)
Jenkins
Fundamentals
3. 解决
原因
- 输出前, 需要制定 ifs
ifs
- linux 的环境变量
- 略
最终脚本
#!/bin/bash OLD_IFS=${IFS}
IFS="" for line in `cat ${1}`
do
echo ${line}
done IFS=${OLD_IFS}
4. 其他
ref
- SHELL 读取文件的每一行内容并输出
- 用 while 输出, 貌似就没有这个问题...
- Shell中IFS用法
- SHELL 读取文件的每一行内容并输出
疑问
- IFS 这玩意到底是什么鬼
- ${1} 是 bash 脚本的参数, 如果说, 脚本里有了 awk 命令, 需要引用 $1, 到底是哪个为准呢?
Linux - bash - 小坑: IFS的更多相关文章
- linux日常小坑
一.权限 1.文件权限 改动文件权限和所有权的命令有如下两个: chmod -更改权限 chown -更改所有权 不过,只有用户是当前所有者或者根用户,才能实际更改文件的权限或所有权,这一点大家要注意 ...
- [转帖]linux bash环境变量简单总结
linux bash环境变量简单总结 来源链接:http://www.178linux.com/8005 原创文章,如有转载,请注明原文地址 需要简单学习一下. 其实 我都是直接放一个 .sh文件到 ...
- Linux通用小技能
Linux通用小技能 前言 无论你用ubuntu还是centos,通通没问题,运维这东西,踩坑写文档就是了. 小技能 新磁盘挂载 不管是阿里云还是腾讯云,还是自己的机器,请记住这条命令. mkfs.e ...
- Linux Bash命令关于程序调试详解
转载:http://os.51cto.com/art/201006/207230.htm 参考:<Linux shell 脚本攻略>Page22-23 Linux bash程序在程序员的使 ...
- mciSendString 的两个小坑
刚刚修正了自己用的小闹钟的代码. 坑1:REPEAT 选项的作用范围 原来用得好好的,之后选择 .wav 文件,居然不出声音了…… 诶,MCI 肯定支持 .wav 的啊…… 仔细想想,我以前都是选 . ...
- 注意Android里TextView控件的一个小坑,用android:theme来设置样式时动态载入的layout会丢失该样式
注意Android里TextView控件的一个小坑,用android:theme来设置样式时动态载入的layout会丢失该样式 这个坑,必须要注意呀, 比如在用ListView的时候,如果在List_ ...
- 转: windows 10使用原生linux bash命令行
转: https://www.zybuluo.com/pandait/note/337430 windows 10使用原生linux bash命令行 linux bash windows-10 第一时 ...
- C#中的Infinity有个小坑
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 昨天家里有事,上网也不方便,就没有推送文章.今天很累,也不长篇大论了.简单介绍一下最近遇到的 ...
- Linux Bash代码 利用for循环实现命令的多次执行
Linux Bash代码 [yuanhao15@lu01 libsvm-rank-2.81]$ for ((i=0; i<=19; i++)) do ./svm-train -s 5 -c 10 ...
随机推荐
- Wannafly Camp 2020 Day 1F 乘法 - 字符串
一开始想根据单调性双指针 后来血了才想起来负负得正 于是暴力二分答案即可 #include <bits/stdc++.h> using namespace std; #define int ...
- PHP对一维数组去重
一维数组去重 $arr =[1,2,2,3,6]; $arr1 =array_flip($arr); $arr =array_flip($arr1); return $arr; array_flip( ...
- Python Turtle模块的简单应用
时钟 import turtle as t import datetime as dt #画出背景 game = t.Screen() game.bgcolor("white") ...
- HDU 1542 Atlantis(扫描线算法)
题意:给出n个矩形的左下角左边和右上角坐标,求这n个矩形的面积并 原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1542 典型的扫描线算法的题目 什么是 ...
- docker部署java应用程序
https://docs.docker.com/get-started/ 安装docker 1.安装docker apt install docker 2.配置docker加速器 安装完成后在 ...
- 简写函数字面量(function literal)
如果函数的参数在函数体内只出现一次,则可以使用下划线代替: val f1 = (_: Int) + (_: Int) //等价于 val f2 = (x: Int, y: Int) => x + ...
- 10.3lambda表达式笔记
与参数不同被捕获的变量的值是在lambda创建时拷贝,而不是调用时拷贝 void fcn() { int v1 = 42; //局部变量 auto f = [v1] { return v1; }; a ...
- 后台 - java 数组
声明 int[] arr = new int[5]; 在数组中插入数据 备注:i是插入的位置,i+1是实际位置 public static int[] insert(int[] arr,int i,i ...
- 基于Java+HttpClient+TestNG的接口自动化测试框架(八)------ 针对文件的处理
在实际的接口测试中,有时需要根据情况进行文件的上传和下载.在文件数量比较小的时候,我们当然可以直接处理(比如若干个接口都用一个文件).但是,如果我们上传的文件需要使用不同文件夹里不同的文件,而且数量又 ...
- Unity 读取Json常用的两种方式
使用的是Litjson 1.读取本地Json public void ReadJson() { StreamReader streamReader = new StreamReader(Applica ...