微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从命令提示符打印/回显“警报”07

如何解决如何从命令提示符打印/回显“警报”07

在python中发出哔哔声我打印控制字符07。例如:

>>> print('\x07')
# <beep>

是否可以从 shell 执行此操作?我一直在尝试这样的事情:

david$ echo \x07
x07
david$ echo '\x07'
\x07
david$ echo "\x07"
\x07

但只是从字面上打印出来。除了做以下事情之外,如何做到这一点:

$ python -c "print('\x07')"

似乎 printf 有效:

$ printf '\a'

还有什么办法可以用 echo 做到这一点吗?

解决方法

其实很简单:

printf "\a"

打印闹钟/铃声字符。

echo 的问题在于 POSIX 说

如果第一个操作数是 -n,或者任何一个操作数包含一个字符,则结果是实现定义的。

而且,事实上,如果使用内置版本(以及哪个 shell),或者您的操作系统(如果使用独立的echo),有些人会解释默认情况下反斜杠转义,有些需要特定的选项(通常是 -e)才能这样做,有些(zsh)取决于 shell 选项的设置……使用 {{1 }},对于像 printf 这样的转义序列,它的行为总是相同的。

,

对于 Bash,内置的 echo 命令支持转义:

echo -ne '\a'

对于符合 POSIX 的 shell,printf 是更好的选择:

printf '\a'

或者使用 GNU 核心实用程序:

/bin/echo -ne '\a'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。