在我见过的大多数shell脚本中(除了我自己没有写过的脚本之外),我注意到shebang设置为#!/bin/sh
。对于旧的脚本,这并不令我感到意外,但是在相当新的脚本中也是如此。
是否有理由宁愿使用/bin/sh
over /bin/bash
,因为bash
在十年前的许多Linux和BSD机器上,它普遍存在并且通常是默认的吗?
...the answers so far are fairly subjective...
根据定义,“主观”陈述实质上是基于观点的。/bin/bash
仅在明确需要bash时使用。作为开发人员40多年了,很久以前bash
,除了测试时,我几乎从没有明确需要它。(我也努力避免shell扩展,但是我的大多数脚本都是分发的。)网上的许多脚本也应该广泛使用。
/bin/sh
如果您不使用特定bash
功能,则可以很好地使用它。有一天,您可能必须在未安装脚本的系统上使用其中一个脚本(远程服务器,嵌入式计算机...)