“grep -Ff ”不会在 bash 脚本中用颜色突出显示模式

“grep -Ff ”不会在 bash 脚本中用颜色突出显示模式

在终端中运行以下命令时,它可以正常工作,突出显示的红色和白色与下图所示的图案匹配,

$ grep -Ff file1.txt file2.txt

输出:预期产出

但是,当我将相同的命令作为文件放入脚本中pl.sh并运行它时,它根本不会像上图那样突出显示。我不确定我做错了什么!我需要更改脚本吗?

#!/bin/bash

# Main file:
echo -n "Choose the Main Assignment File : "
read mainfile

# Compare a file
echo -n "Choose a file to compare with : "
read comparefile

# Compare two files and highlight differences 
sudo grep -Ff "$mainfile" "$comparefile"

答案1

您的交互式 shell 可能有一个别名,该别名重新定义 grep 以在输出到终端设备 ex 时使用颜色。别名grep='grep --color=auto'(可能在默认~/.bashrc文件中定义)。

默认情况下,Bash 非交互式脚本不会扩展别名 - sudo 也不会。因此,您需要将颜色选项显式添加到 grep 中。

grep --color=auto -Ff "$mainfile" -- "$comparefile" 

相关内容