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

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

当我运行包含以下代码的简单 shell 脚本时:

#!/bin/sh 
printf "\e[32m Hello World\n"

我明白了

\e[32m 你好,世界

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

答案1

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

相关内容