我从this问题中提取示例以创建以下示例:
#!/bin/bash
export GREEN='\033[0;32m'
export RED='\033[0;31m'
export NC='\033[0m' # No Color
echo "I ${RED}love${NC} ${GREEN}Stack Overflow${NC}"
如果我获取文件,它会按预期工作。但是,将其作为可执行文件运行会导致控制代码被打印到屏幕而不是颜色发生变化。我认为我需要向bash发送一些标志以启用颜色,但是什么?
答案 0 :(得分:4)
您不需要在此处导出,并且确保将正确的转义字符添加到每个变量,而不是让- @presenter = local_assigns[:presenter] if local_assigns[:presenter]
或echo
进行替换,这样做更为简单
printf
更好的是,使用GREEN=$'\e[0;32m'
RED=$'\e[0;31m'
NC=$'\e[0m'
echo "I ${RED}love${NC} ${GREEN}Stack Overflow${NC}"
来获取终端的正确序列,而不是假设ANSI转义序列。
tput