only use shell when set, always pass environment