Linux
“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"
您的互動式 shell 可能有一個別名,該別名重新定義 grep 以在輸出到終端設備 ex 時使用顏色。別名
grep='grep --color=auto'
(可能在預設~/.bashrc
文件中定義)。預設情況下,Bash 非互動式腳本不會擴展別名 - sudo 也不會。因此,您需要將顏色選項明確添加到 grep ex。
grep --color=auto -Ff "$mainfile" -- "$comparefile"