터미널에서 다음 명령을 실행하면 제대로 작동합니다. 빨간색과 흰색 강조 표시가 아래 이미지에 표시된 패턴과 일치합니다.
$ 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
대화형 셸에는 터미널 장치로 출력할 때 색상을 사용하도록 grep을 재정의하는 별칭이 있을 수 있습니다. 별칭 grep='grep --color=auto'
( ~/.bashrc
기본 파일에 정의될 수 있음).
기본적으로 Bash 비대화형 스크립트는 별칭을 확장하지 않으며 sudo도 마찬가지입니다. 따라서 명시적으로 grep에 색상 옵션을 추가해야 합니다.
grep --color=auto -Ff "$mainfile" -- "$comparefile"