-
Notifications
You must be signed in to change notification settings - Fork 1.8k
SC2033
Vidar Holen edited this page Nov 15, 2021
·
8 revisions
foo() { bar --baz "$@"; frob --baz "$@"; };
find . -exec foo {} +
find . -exec sh -c 'bar --baz "$@"; frob --baz "$@";' -- {} +
Shell functions are only known to the shell. External commands like find
, xargs
, su
and sudo
do not recognize shell functions.
Instead, the function contents can be executed in a shell, either through sh -c
or by creating a separate shell script as an executable file.
If you're intentionally passing a word that happens to have the same name as a declared function, you can quote it to make shellcheck ignore it, e.g.
nobody() {
sudo -u "nobody" "$@"
}