下面的文件(我将其称为 /tmp/ltSortedList)在 tcsh 中获取时会输出不同颜色的行:
echo "\033[0;34m R:0 2020 12 10 18:53 regularFile "\\e[0m
echo "\033[0;34m R:32325978 2020 12 10 17:10 G670_UserGuide_Long.pdf "\\e[0m
echo "\033[0;31m S:13 2020 12 09 18:49 /tmp/linkTarget "\\e[0m
但是当我从 bash(或使用 .)获取它时,着色不起作用(见图)。推测与控制代码有关。
有人可以解释一下如何在 bash 中获得与在 tcsh 中获得的相同结果吗?
感谢您的任何建议
答案1
我的猜测是,在两者中tcsh
,bash
您都会获得 ; 的内置实现echo
。tcsh
的实现正在解释转义序列,而bash
的则不是。
尝试这个:
/bin/echo -e "\033[0;34m R:0 2020 12 10 18:53 regularFile "\\e[0m
/bin/echo -e "\033[0;34m R:32325978 2020 12 10 17:10 G670_UserGuide_Long.pdf "\\e[0m
/bin/echo -e "\033[0;31m S:13 2020 12 09 18:49 /tmp/linkTarget "\\e[0m
这将确保您使用/bin/echo
二进制文件。该-e
标志将导致/bin/echo
解释转义字符。
答案2
我无法与 tcsh 通话。在 bash 中,echo 是内置的,/bin/echo
不是,但关键点是-e
.两者都会呼应并且/bin/echo
会随之改变颜色,没有它则不会。