在编写shell程序时,我们经常使用/bin/sh和/bin/bash.我经常使用bash,但我不知道它们之间有什么区别.
bash和之间的主要区别是sh什么?
我们究竟需要意识到在编程时bash和sh?
我正在开发一个Bash库,并希望确保我能够支持尽可能多的环境 - 包括旧的Bash安装.我的开发环境是Bash 4.3,但我的一些用户可能正在运行更旧的版本,目前我无法确认或否认我的库将适用于他们.特别是我想与OSX兼容(它仍然附带Bash 3.2,AFAIK).
我知道Bash可以在POSIX兼容模式下运行; 是否有类似的设置禁用现代功能?或者在某种兼容模式下运行Bash的方法?我正在寻找任何缺乏实际查找和启动旧操作系统并在那里测试我的库的技术.
更新
例如,我已经避免使用关联数组,因为它们是在Bash 4中引入的,但是如果没有测试我很难确定我不会意外地使用其他一些Bash 4+功能.