zsh 和 bash 的 echo 有什么区别?

2023-12-21

在 bash 中,在这种特定情况下,echo 的行为如下:

$ bash -c 'echo "a\nb"'
a\nb

但在 zsh 中,同样的事情结果却截然不同......:

$ zsh -c 'echo "a\nb"'
a
b

和鱼,因为我很好奇:

$ fish -c 'echo "a\nb"'
a\nb

我确实意识到我可以运行:

$ zsh -c 'echo -E "a\nb"'
a\nb

但现在我担心我会在这样的基本操作中遇到更多问题。 (因此,我对 Fish 的调查是:如果我必须在 zsh 的如此低的级别上进行更改,为什么不完全改变并切换到明显不同的东西呢?)

我自己没有找到任何文档来帮助澄清 bash 与 zsh 中的 echo 差异或直接列出差异的页面,所以这里有人可以列出它们吗?也许可以指导我在进行转换时遇到更广泛的潜在影响的陷阱,这将涵盖这种情况?


通常更喜欢printf以获得一致的结果。

如果您需要可预测的一致echo实现,您可以用自己的函数覆盖它。

无论 shell 是什么,这都会表现相同。

echo(){ printf %s\\n "$*";}
echo "a\nb"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

zsh 和 bash 的 echo 有什么区别? 的相关文章

  • 设置 Pyenv 的路径

    我正在尝试在我的服务器中设置 Pyenv 的加载路径 bashrc file 我正在关注这个tutorial https realpython com intro to pyenv 它要求我们在哪里设置pyenv到加载路径 然而 在我的 b
  • 如何将 bash 脚本的整个输出保存到文件

    我正在尝试将 bash 脚本的整个输出保存到文件中 我目前在代码开头有一个参数 ip 地址 如下所示 bin bash USAGE Usage 0
  • 如何将参数传递给java bash脚本? [复制]

    这个问题在这里已经有答案了 我有一个简单的 bash 脚本来运行我的 java 程序 就这个 run sh bin sh java jar target my jar arch jar 我想将参数传递给这个脚本 该脚本必须将它们传递给jav
  • 使用 Ansible 将二进制文件添加到 PATH

    我正在尝试安装Kiex https github com taylor kiex版本管理器Elixir http elixir lang org install html使用 Ansible 的编程语言 这些是我为此使用的戏剧 name K
  • 使用 sed 删除非字母数字字符

    我正在尝试验证一些输入以删除一组字符 只允许使用字母数字字符加 句点 下划线 连字符 我测试了正则表达式 w here http gskinner com RegExr http gskinner com RegExr 它与我想要删除的内容
  • 显示 \r\n 的文本编辑器? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以显示实际回车符和换行符的文本编辑器 例如 如果我保存这个字符串 This rIs r
  • shell_exec 的输出被截断为 100 个字符

    当在 shell 中运行以下命令时 curl F file filename http 192 168 0 1 产生以下输出 Accuracy 0 0 1 classification Accuracy 0 0 1 classificati
  • 使用正确的头打印文件名

    我想获取当前目录中的文件名 使得文件的第一行等于myWord 我想结合find type f命令与 exec选项与head 1 filename但无济于事 有没有一些聪明的 单行的解决方案来解决这个问题 您可以使用find with awk
  • 如何使用我在 github 中发布的 bash 脚本执行 chsh?

    我有一个要点 我总是用它来在新服务器上安装我需要的软件包 http gist github com 4372049 http gist github com 4372049 我需要做的就是通过 ssh 在新服务器中输入以下内容 bash c
  • 减小 TinyMCE 文本区域中的行间距

    I am using TinyMCE to provide a rich text editing text editor But the line spacing between the lines is too much I have
  • 使用 grep 查找包含所有搜索字符串的行

    我有一个文件 其中包含很多与此类似的行 id 2796 some model Profile message type MODEL SAVE fields account 14 address null modification times
  • .profile 无法从 Mac 终端运行

    我有一个 profile 文件 我正在终端中读取并使用别名 但在某些时候 别名由于没有明确的原因而停止工作 其他命令仍在工作 为了快速修复 我删除了 rm 并在用户目录中重新创建了 profile 文件 我可以看到 至少在该目录中没有 ba
  • grep 两个分隔符之间的子字符串

    我有很多bash使用的脚本perl内的表达式grep为了提取两个分隔符之间的子字符串 例子 echo BeginMiddleEnd grep oP lt Begin End 问题是 当我将这些脚本移植到运行的平台时busybox 融合的 g
  • 将相对符号链接转换为绝对符号链接

    如何在 bash 中递归地将相对符号链接转换为绝对符号链接 ln sf readlink f link link
  • 匹配模式后添加行[重复]

    这个问题在这里已经有答案了 我有一个文件说test具有以下值 Linux Solaris Fedora Ubuntu AIX HPUX 如何在匹配 AIX 的行后面添加一行系统主机名 如果我做 echo hostname gt gt tes
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46
  • 生成 XML 时如何保留 CDATA 中的换行符?

    我想写一些包含空格字符的文本 例如newline and tab到一个xml文件中 所以我使用 Element element xmldoc createElement TestElement element appendChild xml
  • 如何查找所有以句号结尾的单词?

    我有一个包含许多以 a 结尾的单词的文件 其中大部分是缩写 例如 etc p s 如何输出一个仅显示一次所有这些单词的列表 所有单词前面都有一个空格 因此可以使用该空格来查找单词的开头 没有一个单词出现在该行的开头 文件中没有句子 因此句点
  • 获取变量的名称作为输入并使用该名称更改变量

    我从脚本用户那里获取变量的名称作为第一个参数 并将该变量的值回显到控制台 bin bash variablename 1 echo The value of variablename is variablename 这太棒了 我无法开始工作

随机推荐

  • python 在pdf文件中搜索

    这是pdf结构的一部分 5 0 obj lt lt Length 56 gt gt stream BT F1 12 Tf 100 700 Td 15 TL JavaScript example Tj ET endstream endobj
  • matplotlib中如何限制y轴高度?

    如何限制matplotlib图中y轴的高度 我正在尝试显示 x 轴 并降低该一维图的图形高度 我尝试过设置刻度 图形大小 tight layout 边距等 但没有成功 另外 无论我选择什么限制 更改 ylimit 都会跨越整个图形高度 im
  • Maven 故障安全插件不运行并行测试

    我有一个 Maven POM 文件 当我提供并行执行选项时 我在日志中没有看到任何并行执行的迹象 XML 调试让我抓狂 有什么想法这里出了什么问题吗
  • 查找两条曲线之间的重叠面积

    我一直在努力寻找解决方案来找到两条曲线之间的重叠区域 我处理的不是具有已知参数的概率密度函数 而是通过平滑经验数据点获得的曲线 我发现的唯一提示是计算不重叠的区域 如这段代码 来自here https www researchgate ne
  • 使用 python 求解 7000x7000 线性系统时的最佳性能方法

    我需要一种有效的方法来反转 python 中的 7000x7000 空气动力学影响系数 密集 矩阵 在使用 FORTRAN 例程之前 我已经开始使用 LAPACK 中的 LU 分解例程来处理问题 我已经看到它在其他相关应用程序中的使用非常有
  • 用户输入数字时的 Javascript 计算器

    我是 Javascript 新手 但我正在尝试在我的网站上实现一些功能 用户可以在其中输入数量 并且小计会在输入时动态更新 例如 如果每件物品的价格为 10 美元 并且用户在文本字段中键入 5 我希望它在文本框旁边显示 50 美元 非常简单
  • REST - 使用 Spring MVC 返回创建的对象

    我有一个 REST 调用 它接受一个 JSON 对象 比如说一个人 创建此对象 经过验证并保存到数据库 后 我需要返回新创建的 JSON 对象 我认为标准做法是返回201 Accepted而不是立即返回对象 但我的应用程序立即需要新创建的对
  • 有人使用 Sphinx 来记录 C++ 项目吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Sinatra/Ruby 默认一个参数

    有没有办法在 Sinatra 中默认参数 我目前正在寻找是否 start 作为参数传递 但看起来有点hacky 如果我能告诉 Sinatra 在未指定的情况下默认某些参数 那就太好了 get comments do want to setu
  • 选择 html 元素内的文本并更改样式

    text1 div text2 div 我只需要选择 text1 并添加一些样式 I tried body color red 但text1和text2都变成红色 我正在寻找类似的东西 css selector im searching c
  • 使用新的 prefixText 时如何更改 TextInputLayout 的提示填充?

    我尝试过实施TextInputLayout与新的prefixText using com google android material material 1 2 0 alpha02 这是一个非常酷的功能 但是当我添加前缀文本时 提示标签会
  • 为什么 C/C++ 编译器需要在编译时知道数组的大小?

    我知道 C99 以及 C 之前的 C 标准规定 堆栈上数组的大小必须在编译时已知 但这是为什么呢 堆栈上的数组是在运行时分配的 那么为什么大小在编译时很重要呢 希望有人向我解释编译器在编译时将如何处理大小 谢谢 这种数组的示例是 void
  • 具有最小宽度的 3 列布局(固定、流动、固定)

    我在网上搜索过 似乎找不到一个干净 简单 所有浏览器友好的三栏布局 我希望有 3 列布局 左列固定为 200px 右列固定为 200px 中间列保留剩余宽度 但最小宽度为 600px 所以整体最小宽度是 200px 600px 200px
  • 如何访问angular2组件中的全局js变量

    我在下面定义了一个全局 js 变量 Url 是一个 ASP Net MVC html 帮助器 它将转换为字符串值 如何访问 angular2 组件中的 rootVar 我曾经在 Angular 1 5 中使用窗口服务 在 Angular2
  • 使用 ADO.Net 实体模型的优点和缺点

    HI 使用 ADO NET 实体模型作为数据层有哪些优缺点 如果我要使用这项技术 我应该使用 LINQ 吗 Thanks 首先 您不必使用 LINQ 来使用实体框架 EF 但它确实有帮助 EF 基于 EF 团队所称的东西实体SQL 因此 当
  • Linq 合并左连接数据

    假设我有以下数据库 Users UserId PK UserName Roles RoleId PK RoleName UserRoles UserId PK RoleId PK 用户 1 M 用户角色 M 1 角色 使用 LinqToSQ
  • 如何在 Windows 7 GAC 中注册 Assembly .net 4.0?

    您好 我正在使用 vs2010 创建一个 net 4 0 程序集 我假装在 GAC 上注册该程序集 我找不到 gacutil 也不知道如何在 4 0 GAC 上注册程序集 有人可以帮忙吗 找到解决方案 使用位于以下位置的 GacUtil 进
  • 如何按行长度对文件进行排序,然后按字母顺序对第二个键进行排序?

    假设我有一个文件 ab aa c aaaa 我希望它像这样排序 c aa ab aaaa 即按行长度排序 然后按字母顺序排序 这在 bash 中可能吗 您可以在每行前面添加行的长度 然后进行数字排序 最后剪掉数字 lt your file
  • PostgreSQL - 使 ts_rank 按原样采用 ts_vector 位置或定义自定义 ts_rank 函数

    我正在对电子商务平台中的一系列商品执行加权搜索 我遇到的问题是 ts rank 为不同的单词组合提供了完全相同的值 即使 ts vector 为每组单词提供了不同的位置 让我用一个例子来说明这一点 如果我给 ts vector 这个词cam
  • zsh 和 bash 的 echo 有什么区别?

    在 bash 中 在这种特定情况下 echo 的行为如下 bash c echo a nb a nb 但在 zsh 中 同样的事情结果却截然不同 zsh c echo a nb a b 和鱼 因为我很好奇 fish c echo a nb