나는 내 노트북을 열 때마다 apt-get update
, apt-get upgrade
, apt-get dist-upgrade
및 e를 실행할 필요가 없도록 Kali Linux 배포판을 위한 매우 간단한 bash 스크립트를 작성했습니다 .apt-get autoclean
apt-get autoremov
며칠 동안 구문을 읽은 후에도 여전히 올바른 결과를 얻을 수 없습니다. 터미널 출력 형식을 지정하기 위해 스크립트에 무언가를 추가하려고 하는데 "오류"가 빨간색으로 표시됩니다. apt-get 업그레이드 출력에서 오류를 빨간색으로 표시하는 내용을 스크립트에 추가할 수 있다면 감사하겠습니다. 미리 감사드립니다.
참고로 여기 두 줄짜리 스크립트가 있습니다...
apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y && apt-get autoremove -y && apt-get autoclean -y
답변1
나는 귀하가 제공하는 모든 문자열에 색상을 지정하는 작은 스크립트를 작성했습니다.
#!/usr/bin/env perl
use Getopt::Std;
use strict;
use Term::ANSIColor;
my %opts;
getopts('hic:l:',\%opts);
if ($opts{h}){
print<<EoF;
Use -l to specify the pattern(s) to highlight. To specify more than one
pattern use commas.
-l : A Perl regular expression to be colored. Multiple expressions can be
passed as comma separated values: -l foo,bar,baz
-i : makes the search case sensitive
-c : comma separated list of colors;
EoF
exit(0);
}
my $case_sensitive=$opts{i}||undef;
my @color=('bold red','bold blue', 'bold yellow', 'bold green',
'bold magenta', 'bold cyan', 'yellow on_magenta',
'bright_white on_red', 'bright_yellow on_red', 'white on_black');
if ($opts{c}) {
@color=split(/,/,$opts{c});
}
my @patterns;
if($opts{l}){
@patterns=split(/,/,$opts{l});
}
else{
$patterns[0]='\*';
}
# Setting $| to non-zero forces a flush right away and after
# every write or print on the currently selected output channel.
$|=1;
while (my $line=<>)
{
for (my $c=0; $c<=$#patterns; $c++){
if($case_sensitive){
if($line=~/$patterns[$c]/){
$line=~s/($patterns[$c])/color("$color[$c]").$1.color("reset")/ge;
}
}
else{
if($line=~/$patterns[$c]/i){
$line=~s/($patterns[$c])/color("$color[$c]").$1.color("reset")/ige;
}
}
}
print STDOUT $line;
}
color
디렉터리에 저장 $PATH
하고 실행 가능하게 만들면( chmod +x /usr/bin/color
) 원하는 색상을 지정할 수 있습니다.
sudo apt-get install nonexistent-package 2>&1 | color -l "E:,error"
2>&1
오류 메시지는 표준 출력으로 리디렉션되어야 합니다 .
답변2
hhlighter를 사용할 수 있습니다. git 및 ack(배포판에 따라 ack-grep도 가능)가 필요합니다.
git clone https://github.com/paoloantinori/hhighlighter.git
.bashrc 파일은 두 가지 방법으로 편집할 수 있습니다. 다음과 같이 h.sh 파일에 경로를 추가할 수 있습니다.
. ~/hhlighter/h.sh
또는 h() 함수를 복사하여 .bashrc에 붙여넣을 수 있습니다. 어느 쪽이든, bash를 다시 시작하려면 로그아웃했다가 다시 로그인해야 합니다. 또는 다음 명령을 실행할 수 있습니다:
source ~/.bashrc
사용 예:
sudo apt-get dist-upgrade -y | h -i error
또는
sudo apt-get dist-upgrade -y | h -i error:
자세한 내용을 보려면 여기를 클릭하세요:github.com/paoloantinori/hhighlighter