Bash 如何在Vagrant provision脚本中以自定义颜色输出错误?
我想让我的Vagrant provision脚本运行一些检查,如果用户不满意,这些检查将需要用户操作。简单到:Bash 如何在Vagrant provision脚本中以自定义颜色输出错误?,bash,shell,vagrant,vagrant-provision,Bash,Shell,Vagrant,Vagrant Provision,我想让我的Vagrant provision脚本运行一些检查,如果用户不满意,这些检查将需要用户操作。简单到: if [ ! -f /some/required/file ]; then echo "[Error] Please do required stuff before provisioning" exit fi 但是,只要这不是一个真正的错误,我就得到了以绿色打印的echo。我希望我的输出是红色(或者,至少是不同的颜色),以提醒用户 我试过: echo "\033[3
if [ ! -f /some/required/file ]; then
echo "[Error] Please do required stuff before provisioning"
exit
fi
但是,只要这不是一个真正的错误,我就得到了以绿色打印的echo
。我希望我的输出是红色(或者,至少是不同的颜色),以提醒用户
我试过:
echo "\033[31m[Error] Blah blah blah"
这在本地工作,但在流浪输出上,颜色代码被转义,我得到了绿色的回声
这可能吗?默认情况下,Vagrant命令使用
--无颜色选项运行。您可以尝试使用--color
设置颜色。Vagrant的环境变量已记录在案。默认情况下,Vagrant命令使用--无颜色
选项运行。您可以尝试使用--color
设置颜色。Vagrant的环境变量已记录在案。之所以会发生这种情况,是因为一些工具将其部分消息写入了stderr
,然后Vagrant将其解释为错误并以红色打印
并不是所有的终端都支持ANSI颜色代码,Vagrant不会注意这一点。尽管如此,我不会建议通过将单词发送到stderr对其进行着色,除非它是一个错误
要实现这一目标,您只需:
echo "Your error message" > /dev/stderr
发生这种情况是因为一些工具将一些消息写入
stderr
,然后Vagrant将其解释为错误并以红色打印
并不是所有的终端都支持ANSI颜色代码,Vagrant不会注意这一点。尽管如此,我不会建议通过将单词发送到stderr对其进行着色,除非它是一个错误
要实现这一目标,您只需:
echo "Your error message" > /dev/stderr
您需要使用keep_color true,然后它才能按预期工作
config.vm.provision "shell", keep_color: true, inline: $echoes
$echoes = <<-ECHOES
echo "\e[32mPROVISIONING DONE\e[0m"
ECHOES
config.vm.provision“shell”,保留颜色:true,内联:$echomes
$echoos=您需要使用keep_color true,然后它才能按预期工作
config.vm.provision "shell", keep_color: true, inline: $echoes
$echoes = <<-ECHOES
echo "\e[32mPROVISIONING DONE\e[0m"
ECHOES
config.vm.provision“shell”,保留颜色:true,内联:$echomes
美元回声=