from:http://blog.csdn.net/zengqiang1/article/details/61916697
查看此时系统shell
ls -al
/bin/sh
Linux 操作系统缺省的
shell 是Bourne Again shell,它是 Bourne shell 的扩展,简称 Bash,与 Bourne
shell 完全向后兼容,并且在Bourne shell 的基础上增加、增强了很多特性。
GNU/Linux 操作系统中的
/bin/sh 本是 bash (Bourne-Again Shell) 的符号链接,但鉴于 bash 过于复杂,有人把 ash 从
NetBSD 移植到 Linux 并更名为 dash (Debian Almquist Shell),并建议将 /bin/sh
指向它,以获得更快的脚本执行速度。Dash Shell 比 Bash Shell
小的多,符合POSIX标准。 Debian和Ubuntu中,/bin/sh默认已经指向dash,这是一个不同于bash的shell,它主要是为了执行脚本而出现,而不是交互,它速度更快,但功能相比bash要少很多,语法严格遵守POSIX标准。 语法上的主要的区别有: 1.定义函数
bash:
function在bash中为关键字
dash:
dash中没有function这个关键字
2.select var in list; do
command; done
bash:支持
dash:不支持,
替代方法:采用while+read