count-forks() {
local prev_pid=$(echo $BASHPID)
"$@"
local next_pid=$(echo $BASHPID)
echo "$* -> $(( next_pid - prev_pid - 1 )) fork(s)"
}
func1() {
echo hello | cat -n
}
func2() {
cat -n <<< hello
}
func3() {
echo hello
}
count-forks func1
count-forks func2
count-forks func3
Y291bnQtZm9ya3MoKSB7Cglsb2NhbCBwcmV2X3BpZD0kKGVjaG8gJEJBU0hQSUQpCgkiJEAiCglsb2NhbCBuZXh0X3BpZD0kKGVjaG8gJEJBU0hQSUQpCgllY2hvICIkKiAtPiAkKCggbmV4dF9waWQgLSBwcmV2X3BpZCAtIDEgKSkgZm9yayhzKSIKfQoKZnVuYzEoKSB7CgllY2hvIGhlbGxvIHwgY2F0IC1uCn0KCmZ1bmMyKCkgewoJY2F0IC1uIDw8PCBoZWxsbwp9CgpmdW5jMygpIHsKCWVjaG8gaGVsbG8KfQoKY291bnQtZm9ya3MgZnVuYzEKY291bnQtZm9ya3MgZnVuYzIKY291bnQtZm9ya3MgZnVuYzM=