如何阻止 printf 在 shell 脚本中打印转义码?

rob*_*ith 1 terminal bash shell-script bash-scripting

当我使用以下代码运行一个简单的 shell 脚本时:

#!/bin/sh 
printf "\e[32m Hello World\n"
Run Code Online (Sandbox Code Playgroud)

我得到

\e[32m 你好世界

作为输出,而不是绿色的 Hello World 输出。

gee*_*aur 5

printf不明白\e;你需要使用\033. 请注意,这printf也是一个bash内置函数;那个有 GNU 扩展,包括\e,但除非你特别要求你的脚本由/bin/bash你运行,否则你通常会得到 POSIX 一个。