在学习linux编程的过程中,发现shell脚本中有的是以#!/bin/sh
开头的,有的是以#!/bin/bash
开头的,因此在此记录两者之间的区别。
sh就是Bourne shell
这个是UNIX标准的默认shell,对它评价是concise简洁 compact紧凑 fast高效,由AT&T编写,属于系统管理shell
bash是 GNU Bourne-Again SHell
是linux标准的默认shell ,它基于Bourne shell,吸收了C shell和Korn shell的一些特性。bash是Bourne shell的超集,bash完全兼容Bourne shell,也就是说用Bourne shell的脚本不加修改可以在bash中执行,反过来却不行,bash的脚本在sh上运行容易报语法错误。
因此,bash包含了sh所不支持的功能。