💡
原文中文,约2300字,阅读约需6分钟。
📝
内容提要
本文介绍了在bash、zsh和fish三种常见shell中编写脚本的方法,包括编写不同shell版本和通用版本的解决方案,使用alias命令解决bash和fish之间的语句不兼容问题,以及在zsh中使用unalias命令取消alias设置以解决语法错误问题。
🎯
关键要点
- bash和zsh实现了POSIX shell标准,兼容性较好。
- fish不符合POSIX标准,语法不兼容。
- 可以为不同的shell编写不同版本的脚本,并通过通用版本执行。
- 使用type命令判断命令是否存在,以执行相应的脚本。
- POSIX shell使用then和fi,fish shell使用end,导致语法矛盾。
- 可以使用alias命令将then和fi在fish中变为no-op,end在bash中变为no-op。
- 在zsh中使用alias时可能会出现语法错误,需要使用unalias取消alias设置。
- 通过type命令判断unalias是否存在,实现三种shell兼容的if-else语句。
➡️