`xtrace` output goes to stderr, so you could redirect `stderr` to `/dev/null`:
ikwtd() {
echo do stuff
} 2> /dev/null
If you still want to see the errors from the commands run inside the functions, you could do
ikwtd() (
{ set +x; } 2> /dev/null # silently disable xtrace
echo do stuff
)
Note the use of `(...)` instead of `{...}` to provide a local scope for that function via a subshell. `bash`, since version 4.4 now supports `local -` like in the Almquist shell to make options local to the function (similar to `set -o localoptions` in `zsh`), so you could avoid the subshell by doing:
ikwtd() {
{ local -; set +x; } 2> /dev/null # silently disable xtrace
echo do stuff
}
See also this [locvar.sh](http://stchaz.free.fr/locvar.sh) which contains a few functions to implement _local_ scope for variables and functions in POSIX scripts and also provides with `trace_fn` and `untrace_fn` functions to make them <i>xtrace</i>d or not.