2 SC2197
Joachim Ansorg edited this page 2021-11-12 19:47:27 +01:00

fgrep is non-standard and deprecated. Use grep -F instead.

Problematic code:

fgrep '*.*' file

Correct code:

grep -F '*.*' file

Rationale:

fgrep is a non-standard command. Its functionality is provided in POSIX by grep -F. POSIX grep says:

This grep has been enhanced in an upwards-compatible way to provide the exact functionality of the historical egrep and fgrep commands as well. It was the clear intention of the standard developers to consolidate the three greps into a single command.

man grep for GNU says:

Direct invocation as either egrep or fgrep is deprecated

Exceptions:

ShellCheck will fail to recognize when functions override fgrep. Consider giving it a different name or ignore this error.