通过exec运行外部命令来保留颜色

时间:2019-01-07 15:38:36

标签: perl colors terminal exec

是否可以在perl脚本中运行外部命令并保留颜色?

作为一个简单的例子,我将如何从perl脚本中运行ls并获得彩色输出:

#! /usr/bin/perl

exec "ls";

运行此命令时,输出全为白色,但我想保留颜色,在此示例中为目录和可执行文件等...

1 个答案:

答案 0 :(得分:2)

看来ls不会自动打开子外壳中的颜色。

$ echo `ls`
# Output is uncoloured

我们可以使用--color命令行选项来解决此问题。

$ echo `ls --color`
# Output is coloured

您可以在从Perl调用的子shell中使用类似的技巧。

$ perl -e 'system "ls"'
# Output is uncoloured

$ perl -e 'system "ls --color"'
# Output is coloured.