在 bash 脚本中,我将标准错误重定向到红色的标准输出,如下所示:
exec 2> >(sed $'s,.*,\e[38;5;9;82m&\e[m,'>&1)
然而,这隐藏了读取的提示文本:
read -p "prompt text " -n 1 -r
如何显示提示文字(也可能是红色)?
如果没有重定向,阅读将按预期进行。
这应该有效:
#!/bin/bash
exec 2> >(sed $'s,.*,\e[38;5;9;82m&\e[m,'>&1)
date >&2
read -p "prompt text " -n 1 -r 2>/dev/tty