shell脚本几个初级gotchas
- 当今的系统,对#!这一行的长度限制从63到1024个字符都有。清尽量不要超过64个字符
- 在某些系统上,命令行部分包含了命令的完整路径名称。不过有些系统却不是这样;命令行的部分会原封不动地传给程序。因此,脚本是否具有可移植性取决于是否有完整的路径名称
- 别在选项(option)之后放置任何空白,因为空白也会随着选项一起传递给被引用的程序
- 你需要知道解释器的完整路径名称。这可以用来规避可移植性问题,因为不同的厂商可能将同样的东西放在不同的地方
- 一些较旧的系统上,内核不具有解释#!的能力,有些Shell会自行处理,这些Shell对应于#!与紧随其后的解释器名称之间是否可以有空白,可能有不同的解释。