如何获取 osx shell 脚本以在 echo 中显示颜色
How to get osx shell script to show colors in echo
我正在尝试为 bash 脚本中的错误添加颜色输出,我在 mac 上安装了 运行ning。问题是颜色不起作用。我创建了最简单的脚本来证明它不起作用:
#!/bin/bash
echo -e "\e[1;31m This is red text \e[0m"
但是,当我 运行 它时,我根本看不到任何颜色,如图所示。然而,ls 命令的颜色输出工作正常。
OSX 附带不支持 \e
转义字符的旧版本 Bash。使用 \x1B
或更新 Bash (brew install bash
).
不过,更好的方法是使用 tput
.
另一种选择是使用 zsh,它遵循 \e
表示法。
#!/bin/zsh
使用3
或\x1B
代替\e
来表示<Esc>
字符。
echo -e "3[1;31m This is red text 3[0m"
在脚本文件中 printf
可能是另一种选择,但您必须添加尾随 "\n"
。
#!/bin/bash
echo -e "\e[31mOutput as is.\e[m"
printf "\e[32mThis is green line.\e[m\n"
printf "\e[33;1m%s\n" 'This is yellow bold line.'
在 macOS High Sierra 10.13.6 上测试:
% /bin/bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin17)
Copyright (C) 2007 Free Software Foundation, Inc.
我正在尝试为 bash 脚本中的错误添加颜色输出,我在 mac 上安装了 运行ning。问题是颜色不起作用。我创建了最简单的脚本来证明它不起作用:
#!/bin/bash
echo -e "\e[1;31m This is red text \e[0m"
但是,当我 运行 它时,我根本看不到任何颜色,如图所示。然而,ls 命令的颜色输出工作正常。
OSX 附带不支持 \e
转义字符的旧版本 Bash。使用 \x1B
或更新 Bash (brew install bash
).
不过,更好的方法是使用 tput
.
另一种选择是使用 zsh,它遵循 \e
表示法。
#!/bin/zsh
使用3
或\x1B
代替\e
来表示<Esc>
字符。
echo -e "3[1;31m This is red text 3[0m"
在脚本文件中 printf
可能是另一种选择,但您必须添加尾随 "\n"
。
#!/bin/bash
echo -e "\e[31mOutput as is.\e[m"
printf "\e[32mThis is green line.\e[m\n"
printf "\e[33;1m%s\n" 'This is yellow bold line.'
在 macOS High Sierra 10.13.6 上测试:
% /bin/bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin17)
Copyright (C) 2007 Free Software Foundation, Inc.