Сохранить цвет, запустив внешнюю команду через exec - PullRequest
0 голосов
/ 07 января 2019

Можно ли запустить внешнюю команду в Perl-скрипте и сохранить цвет?

В качестве простого примера, как мне запустить ls из сценария Perl и получить цветной вывод:

#! /usr/bin/perl

exec "ls";

Когда я запускаю это, все выводится белым, но я хотел бы сохранить цвета, в этом примере для каталогов и исполняемых файлов и т. Д. ...

1 Ответ

0 голосов
/ 07 января 2019

Похоже, что ls автоматически не включает цвета в подоболочке.

$ echo `ls`
# Output is uncoloured

Мы можем обойти это, используя параметр командной строки --color.

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

Вы можете использовать подобный прием в подоболочке, которая вызывается из Perl.

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

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