在 printf 中仅转义 ansi 颜色

Escape only ansi color in printf

我想在控制台 windows 路径中打印 ansi 颜色。

像这样:

file=read -r

printf "3[32+++Path is \\uncshare\testpath\$file++3[0m"

我需要转义任何特殊符号,例如 \n,因为如果有人键入 nested.txt 作为文件名,例如,它将被解释为换行,但我想保留 ansi 颜色.

printf 根据格式说明符替换字符串,然后你可以做类似

printf '3[32+++Path is \\uncshare\testpath\%s++3[0m' "$file"

避免 file 中的字符被解释。