SC2011 – ShellCheck Wiki

See this page on GitHub


Use find -print0 or find -exec to better handle non-alphanumeric filenames.

Problematic code:

ls | xargs -n1 wc -w

Correct code:

find . -maxdepth 1 -print0 | xargs -0 -n1 wc -w
find . -maxdepth 1 -exec wc -w {} \;


Using -print0 separates each output with a NUL character, rather than a newline, which is safer to pipe into xargs. Alternatively using -exec avoids the problem of piping and parsing filenames in the first place.

See SC2012 for more details on this issue.

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