sh scripts are more portable