backwards-compatible sh_util