bash 中的采购并不模仿 tcsh 中的采购

bash 中的采购并不模仿 tcsh 中的采购

下面的文件(我将其称为 /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

我的猜测是,在两者中tcshbash您都会获得 ; 的内置实现echotcsh的实现正在解释转义序列,而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会随之改变颜色,没有它则不会。

相关内容