bash - 为什么“echo -n”命令在 .sh 脚本中不起作用?
问题描述
例如,我在 .sh 文件中编写脚本,并且我想回显短语“字符串”而没有尾随空格/新行,所以我应该echo -n "string"
像在 bash 或 zsh 中实现此功能一样使用。但是,当我使用命令在 bash/zsh 中运行 .sh 时,sh
.sh 文件只会 print -n string
,并包含一个新行。如何在使用echo
命令的同时打印不带新行的内容?
解决方案
bash
的echo
命令实现与 POSIX 规范大不相同。当bash
运行为sh
时,echo
其行为更像POSIX 的意图,但您sh
也可能不是,bash
但这样的外壳dash
更严格地遵守 POSIX 规范,它不允许任何扩展。POSIX 需要-n
像任何其他参数一样对待,需要输出的东西而不是修改echo
.
改用printf
它,它具有更严格的 POSIX 规范并且更便携。
printf 'string'
推荐阅读
- r - 如何根据某些特殊字符将 data.frame 划分为多个 data.frames?
- android-lifecycle - Android MediatorLiveData 将多个 LiveData 结果组合成单个 LiveData 对象(在 Java 中)
- spring-boot - 如何使用graphql映射具有父类的java类作为字段
- mongodb - Mongoose find() 不返回所有字段(不可枚举)
- python - 在python中动态添加.kv childwidgets
- firebase - 与 .limitToLast 一起用于分页时,如何仅使用 .onSnapshot 从 firebase 获取新文档
- python-3.x - 将属性添加到junit xml pytest
- java - 如何将响应 REST 客户端请求接收到的 JSON 对象转换为 Java 中的 MT940 Swift 文本文件?
- angular - 创建包含ngrx strore的角度模块
- python - 如何在 Tensorflow 中打印迭代器