是否可以在perl脚本中运行外部命令并保留颜色?
作为一个简单的例子,我将如何从perl脚本中运行ls
并获得彩色输出:
#! /usr/bin/perl
exec "ls";
运行此命令时,输出全为白色,但我想保留颜色,在此示例中为目录和可执行文件等...
答案 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.