Shel读取文件转义符(\)丢失问题
- 现有文件tmp.php,期望使用Shell输出原内容
<?php
namespace api\v1;
class Module extends \yii\base\Module
{public $class' = 'api\v1\test\Module';
}
- 使用read读取文件内容,并用echo输出。发现输出结果中
file=$1fileTmp=$1.tmpwhile read line #使用read命令循环读取文件内容,并将读取的文件内容赋值给变量linedo echo "${line}" >> ${fileTmp}done <$file #“done <$file”将整个while循环的标准输入指向文件$file
- 读取文件的内容后,发现转义符(\)没有读出来
namespace apiv1;
class Module extends yiibaseModule
{public $class' = 'apiv1testModule';
}
- 经查阅 read函数 有一个参数
-r 屏蔽\,如果没有该选项,则\作为一个转义字符,有的话 \就是个正常的字符了。
- 读取加上 -r 参数之后,发现\t \v \b被转义输出了
namespace api 1;
class Module extends yiaseModule
{public $class' = 'api 1 estModule';
}
查询后发现脚本使用 #!/bin/sh 模式导致的,#!/bin/sh 中echo默认执行时会转义字符 改为 #!/bin/bash就正常了。
附:echo 参数 -e 和 -E参数也可以控制转义符
-n 不换行输出
-e 启用反斜线转义解释
-E 禁用反斜线转义解释(默认)
- 最终修改如下:
file=$1fileTmp=$1.tmpwhile read -r line #使用read命令循环读取文件内容,并将读取的文件内容赋值给变量linedo echo -E "${line}" >> ${fileTmp}done <$file #“done <$file”将整个while循环的标准输入指向文件$file
Shel读取文件转义符(\)丢失问题相关推荐
- Linux中进程间传递文件描述符的方法
在进行fork调用后,由于子进程会拷贝父进程的资源,所以父进程中打开的文件描述符在子进程中仍然保持着打开,我们很容易的就将父进程的描述符传递给了子进程.但是除了这种情况下,如果想将某个父进程在子进程创 ...
- 遇到一个在脚本中读取文件内容占用文件句柄的小问题
一般来说,嵌入式设备的程序是上电自动运行的.设备系统启动后会自动运行某些系统级脚本(/ect/rc3.d/下的脚本),最终会运行我们自定义的脚本,在该脚本中会运行应用程序.--这就是系统自动启动的一般 ...
- 一文帮你搞懂 Android 文件描述符
介绍文件描述符的概念以及工作原理,并通过源码了解 Android 中常见的 FD 泄漏. 一.什么是文件描述符? 文件描述符是在 Linux 文件系统的被使用,由于Android基 于Linux 系统 ...
- Linux文件描述符详解
文章目录 一.概念 `1.1.特点` 优点 缺点 二.手动创建文件描述符 `2.1.语法` 2.1.1.创建 2.1.2.调用 2.1.3.关闭 `2.2.重定向输出的文件描述符` `2.3.重定向输 ...
- 文件读取 linux_Linux 进程、线程、文件描述符的底层原理
说到进程,恐怕面试中最常见的问题就是线程和进程的关系了,那么先说一下答案:在 Linux 系统中,进程和线程几乎没有区别. Linux 中的进程其实就是一个数据结构,顺带可以理解文件描述符.重定向.管 ...
- 在python中读取文件时如何去除行末的换行符以及在Windows与Linux中的区别
[时间]2018.11.14 [题目]在python中读取文件时如何去除行末的换行符以及在Windows与Linux中的区别 一.去除换行符 以使用readline进行读取为例: import red ...
- python 替换换行符_python按行读取文件,如何去掉换行符\\n
展开全部 python按行读取文件直接使用for in open方式即可,去除'\n',可以使用两种方法,一种是替换函数:replace('\n','')把换行符替换成空;一种是去e68a843231 ...
- python读取文件去掉换行符
python读取文件去掉换行符 读取文件如何去掉换行符,代码如下: f = open('filepath','r') data = [line.strip('\n') for line in f.re ...
- ftpclient读取服务器文件能获得文件名文件大小0_理解Linux的文件描述符FD与Inode
FD 文件描述符 一.概念 Linux 系统中,把一切都看做是文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符,文件描述符就是内核为了高效管理已被打开的文件所创建的索引,用来指向被 ...
最新文章
- xp与Linux双系统共存
- nginx开发简单的http模块
- python compare excel_python简单操作excle的方法
- Java - 单例模式
- JUC 常用 4 大并发工具类:CountDownLatch、CyclicBarrier、Semaphore、Exchanger
- python数据库def函数_Python:函数
- 加载字典文件,扫描网站潜在目录
- CISP 考试教材《第 3 章 知识域:信息安全管理》知识整理
- 一些可以参考的文档集合5
- QQ登录界面实现代码
- bvlc_googlenet.caffemodel模型及描述文件地址
- Superset可视化之制作地图
- css cursor 鼠标指针样式总结
- 录屏神器Bandicam 4.34.1503学习版
- 4月4日网站变灰实录
- 多多自走棋改动_《多多自走棋》 更新,几大改动来袭,一个改动让玩家无奈!...
- MyEclipse 的注册码 破解步骤
- 实验三:跟踪分析Linux内核的启动过程 ----- 20135108 李泽源
- 国产数据库产品介绍以及实践
- 数字信号处理课程实验