我为我的 Kali Linux 发行版编写了一个非常简单的 bash 脚本,因此我不必 每次打开笔记本电脑时都运行apt-get update
、apt-get upgrade
、apt-get dist-upgrade
、apt-get autoclean
和e 。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