首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >echo " -n“不会打印-n吗?

echo " -n“不会打印-n吗?
EN

Stack Overflow用户
提问于 2012-11-07 04:14:39
回答 6查看 7.4K关注 0票数 13

非常相似的to this question

我正在使用BASH中的自动化脚本迭代一些内容。脚本偶尔会遇到"-n“,echo会尝试解释这一点。

尝试执行此操作:

代码语言:javascript
复制
 $ POSIXLY_CORRECT=1 /bin/echo -n

代码语言:javascript
复制
 $ POSIXLY_CORRECT=1 /bin/echo "-n"

但它每次都解释了这个论点。

然后是这个,它可以工作,但它可以命中字符串中的转义字符,这就是为什么我不想将空字符应用于所有输入并使用-e。

代码语言:javascript
复制
$ echo -e "\x00-n"
-n

printf是可能的,但除非没有其他选项(并非所有机器都将printf作为实用程序),否则应避免使用printf。

代码语言:javascript
复制
$printf "%s" "-n"
-n

那么有没有办法让echo打印"-n“呢?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-11-07 04:24:06

printf应该是所有shell中的内置组件,除非您的某些机器有非常旧的shell版本。它已经内置在bash中很长一段时间了。它可能比echo -e更可移植。

否则,就没有办法获得它所关心的echo选项。

编辑:从an answer到另一个类似的问题;使用这个方便的无数字版权保留的包装器来避免引用printf的问题:

代码语言:javascript
复制
ech-o() { printf "%s\n" "$*"; }

(这是ech-o,就像“没有选项”一样)

票数 9
EN

Stack Overflow用户

发布于 2012-11-07 05:13:46

如果在字符串前面加上一个字符(例如,“x”),然后使用cut动态删除该字符,该怎么办:

代码语言:javascript
复制
echo "x-n" | cut -c 2-
票数 4
EN

Stack Overflow用户

发布于 2012-11-07 04:28:23

如果使用名称sh调用Bash,它将模拟sh,其中echo不能使用-n选项。不过,我不确定这是否符合您的需求。

代码语言:javascript
复制
$ /bin/sh -c 'echo -n'
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13258664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档