我经常使用像 read -e -p "> All good ? (y/n)"-n 1 confirm;
这样的东西来向用户询问确认。
我正在寻找一种方法来为输出着色,就像命令 echo -e
所做的那样:
echo -e "\033[31m";
echo "Foobar"; // will be displayed in red
echo -e "\033[00m";
我正在使用 xterm。
在 man echo
中,它说:
-e enable interpretation of backslash escapes
有没有办法用 read
命令做同样的事情? (手册页中没有任何内容 :( -r
选项不起作用)
最佳答案
read
不会处理 -p
参数中的任何特殊转义符,因此您需要按字面意思指定它们。 bash
的 ANSI 引号字符串对此很有用:
read -p $'\e[31mFoobar\e[0m: ' foo
您还应该能够使用 Control-v Escape 键入文字转义字符,这将显示为 ^ [
在终端中:
read -p '^[[31mFoobar^[[0m: ' foo
关于bash - 读取命令 : Display the prompt in color (or enable interpretation of backslash escapes),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24998434/