颜色 rm -i 提示信息

颜色 rm -i 提示信息

我正在寻找一种将自定义颜色应用于rm -i命令发出的消息的方法:

~ $ rm -i file.txt
rm: remove regular empty file 'file.txt'?

我知道我需要将 stderr 作为 stdin 重定向到任何将应用 ANSI 颜色的命令并将输出重定向回 stderr,例如

~ $ rm -i file.txt 2> >(sed $'s/^/\e[31m/;s/$/\e[m/'>&2)

然而,仅此是行不通的;上面的命令不会打印任何内容并立即开始等待用户输入。如果我输入 eg nand Enter,我会得到随后打印的彩色输出:

~ $ rm -i file.txt 2> >(sed $'s/^/\e[31m/;s/$/\e[m/'>&2)
n
rm: remove regular empty file 'file.txt'? ~ $ 

我似乎明白这里出了什么问题 - stderr 被重定向并着色,但由于命令开始等待用户输入而没有打印。有没有办法在rm开始监听标准输入之前打印彩色消息?

相关内容