SC2197 – ShellCheck Wiki

See this page on GitHub


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

Problematic code:

fgrep '*.*' file

Correct code:

grep -F '*.*' file


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


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

ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.