当前位置: 首页 > 面试题库 >

将IFS设置为在换行符上分割时,为什么需要包含退格键?

司徒光霁
2023-03-14
问题内容

我很好奇为什么在将IFS设置为在换行符上分割时为什么需要退格键:

IFS=$(echo -en "\n\b")

为什么我不能只使用它(不起作用)呢?

IFS=$(echo -en "\n")

我在使用Unix行尾保存文件的Linux系统上。我已经用换行符将文件转换为十六进制,并且肯定只使用“ 0a”作为换行符。

我已经在Google上搜索了很多,尽管有很多页面记录了换行符以及后退解决方案,但是我发现却没有一个解释为什么需要退格。

-大卫。


问题答案:

因为如bash手册所述,关于命令替换:

Bash通过执行命令并将命令替换替换为命令的标准输出来执行扩展,并删除所有尾随的换行符。

因此,通过添加\b您可以防止删除\n

一种更干净的方法是使用$''引用,如下所示:

IFS=$'\n'


 类似资料:
  • 我最近一直在学习Android系统,我有一个关于新Android系统库的问题。据我所知,AndroidX只是对支持库的一个新升级,其重点是为早期的Android SDK提供向后兼容性。 但是,Google要求"如果你想在一个新项目中使用AndroidX,你需要将编译SDK设置为Android 9.0(API级别28)或更高版本"。我在这里感到困惑。这是否意味着AndroidX实际上使用了一些仅在A

  • 我将把我的Android项目从Ant转换为Gradle。 我的Eclipse工作区非常简单: 当我添加构建时。MyApp中的gradle文件,我想引用我的Android库项目: 当我运行gradle build时,出现了一个错误“Project with path”:在根项目中找不到MyApp AndroidLibrary“,我在Google上搜索了一下,发现我需要在我的工作区目录中设置一个“se

  • 问题内容: 最长的时间,我一直想了解为什么当浏览器在呈现的HTML元素之间存在换行符时,为什么在它们之间添加空白区域,例如: 上面的html将输出“ HelloWorld”字符串 , 在“ Hello”和“ World”之间 没有 空格,但是在以下示例中: 上面的html将输出“ Hello World”字符串 , 在“ Hello”和“ World”之间 有 一个空格。 现在,我可以毫无疑问地接

  • 问题内容: 为了运行ssh守护程序服务,必须在/etc/pam.d/sshd中将entry设置为可选,如Ubuntu 13.10 的官方示例中所述。 此项对于Ubuntu的早期版本是否可选?它甚至在Ubuntu 13.10之前存在吗? 什么是设置到的意思是,无论如何? 我的ssh配置在这方面的安全性要差得多吗? 问题答案: 用于在用户通过SSH,X或类似方式登录时设置进程的审核属性。然后,审核框架

  • 在我的Java项目中,我使用Lombok工具生成getter和setter<它与Maven完美配合,无需任何配置。 为什么我需要为龙目岛配置Eclipse<我已经知道如何配置Eclipse:https://projectlombok.org/download.html 为什么我必须在我的eclipse.ini中添加以下行?

  • 我有datetime格式的值。例如:2012-10-17 00:05:00.000我把它们铸成了时间格式,但对我来说还是太长了。我只想要一个小时一个分钟的时间。有人知道吗?