• 现有文件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读取文件转义符(\)丢失问题相关推荐

  1. Linux中进程间传递文件描述符的方法

    在进行fork调用后,由于子进程会拷贝父进程的资源,所以父进程中打开的文件描述符在子进程中仍然保持着打开,我们很容易的就将父进程的描述符传递给了子进程.但是除了这种情况下,如果想将某个父进程在子进程创 ...

  2. 遇到一个在脚本中读取文件内容占用文件句柄的小问题

    一般来说,嵌入式设备的程序是上电自动运行的.设备系统启动后会自动运行某些系统级脚本(/ect/rc3.d/下的脚本),最终会运行我们自定义的脚本,在该脚本中会运行应用程序.--这就是系统自动启动的一般 ...

  3. 一文帮你搞懂 Android 文件描述符

    介绍文件描述符的概念以及工作原理,并通过源码了解 Android 中常见的 FD 泄漏. 一.什么是文件描述符? 文件描述符是在 Linux 文件系统的被使用,由于Android基 于Linux 系统 ...

  4. Linux文件描述符详解

    文章目录 一.概念 `1.1.特点` 优点 缺点 二.手动创建文件描述符 `2.1.语法` 2.1.1.创建 2.1.2.调用 2.1.3.关闭 `2.2.重定向输出的文件描述符` `2.3.重定向输 ...

  5. 文件读取 linux_Linux 进程、线程、文件描述符的底层原理

    说到进程,恐怕面试中最常见的问题就是线程和进程的关系了,那么先说一下答案:在 Linux 系统中,进程和线程几乎没有区别. Linux 中的进程其实就是一个数据结构,顺带可以理解文件描述符.重定向.管 ...

  6. 在python中读取文件时如何去除行末的换行符以及在Windows与Linux中的区别

    [时间]2018.11.14 [题目]在python中读取文件时如何去除行末的换行符以及在Windows与Linux中的区别 一.去除换行符 以使用readline进行读取为例: import red ...

  7. python 替换换行符_python按行读取文件,如何去掉换行符\\n

    展开全部 python按行读取文件直接使用for in open方式即可,去除'\n',可以使用两种方法,一种是替换函数:replace('\n','')把换行符替换成空;一种是去e68a843231 ...

  8. python读取文件去掉换行符

    python读取文件去掉换行符 读取文件如何去掉换行符,代码如下: f = open('filepath','r') data = [line.strip('\n') for line in f.re ...

  9. ftpclient读取服务器文件能获得文件名文件大小0_理解Linux的文件描述符FD与Inode

    FD 文件描述符 一.概念 Linux 系统中,把一切都看做是文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符,文件描述符就是内核为了高效管理已被打开的文件所创建的索引,用来指向被 ...

最新文章

  1. xp与Linux双系统共存
  2. nginx开发简单的http模块
  3. python compare excel_python简单操作excle的方法
  4. Java - 单例模式
  5. JUC 常用 4 大并发工具类:CountDownLatch、CyclicBarrier、Semaphore、Exchanger
  6. python数据库def函数_Python:函数
  7. 加载字典文件,扫描网站潜在目录
  8. CISP 考试教材《第 3 章 知识域:信息安全管理》知识整理
  9. 一些可以参考的文档集合5
  10. QQ登录界面实现代码
  11. bvlc_googlenet.caffemodel模型及描述文件地址
  12. Superset可视化之制作地图
  13. css cursor 鼠标指针样式总结
  14. 录屏神器Bandicam 4.34.1503学习版
  15. 4月4日网站变灰实录
  16. 多多自走棋改动_《多多自走棋》 更新,几大改动来袭,一个改动让玩家无奈!...
  17. MyEclipse 的注册码 破解步骤
  18. 实验三:跟踪分析Linux内核的启动过程 ----- 20135108 李泽源
  19. 国产数据库产品介绍以及实践
  20. 数字信号处理课程实验

热门文章

  1. 滴滴开源 Vue 组件库— cube-ui
  2. 20_分支结构的概念
  3. Python遥感图像处理应用篇(十):使用NDVI指数批量计算叶面积指数LAI
  4. GitHub上优秀的开源项目(转载)
  5. 【备忘】关于ssh为什么会失败的原因总结?下次记得来找。
  6. 算法——图的最短距离
  7. 面试题--Git与设计模式
  8. 求学时代的一本数据库老书,谢谢你的陪伴!
  9. 秋天:又一个乱战的时期
  10. Android X5WebView网络监听替换WebView失败页面稳定