#!/bin/sh
handle_exit_code() {
ERROR_CODE="$?";
printf -- "an error occurred. cleaning up now... ";
# ... cleanup code ...
printf -- "DONE.nExiting with error code ${ERROR_CODE}.n";
exit ${ERROR_CODE};
}
trap "handle_exit_code" EXIT;
# ... actual script...
在退出时使用不同的错误码
在绝大多数 shell 脚本中,exit 0 表示执行成功,exit 1 表示发生错误。对错误与错误码进行一对一的映射,这样有助于脚本调试。
#!/bin/sh # ... if [ "$?" != "0" ]; then printf -- 'X happened. Exiting with status code 1.n'; exit 1; fi; # ... if [ "$?" != "0" ]; then printf -- 'Y happened. Exiting with status code 2.n'; exit 2; fi;
这样做有另一个额外的好处,就是其他脚本在调用你的脚本时,可以根据错误码来判断发生了什么错误。
在结束时打印一个新行
如果你有在遵循脚本的最佳实践,那么可能会使用printf代替echo(它在不同系统中的行为有所差别)。问题是printf在命令结束后不会自动添加一个新行,导致控制台看起来是这样的:

看起来是多么的平淡
这样一点也不酷,可以通过简单的方式打印一个新行:
#!/bin/sh # ... your awesome script ... printf -- 'n'; exit 0;
这样就可以得到:

好多了哈
别人会感谢你这么做的。
总结
这篇文章大致总结了一些简单易用的技巧,让 shell 脚本更易于调试和使用。
原文链接:https://codeburst.io/13-tips-tricks-for-writing-shell-scripts-with-awesome-ux-19a525ae05ae
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对易采站长站的支持。










