我正在尝试制作一个可以在最广泛的 *nix 系统上运行的 shell 脚本。那么,如果我编写了一个向后兼容旧版本 shell 的 bash 脚本,但如果系统上没有 bash 该怎么办?例如,嵌入式硬件是否还有另一种常用的shell?或者说在 bash 流行之前我们用了什么?
我想要一个简单的脚本来帮助我自动化各种新旧 *nix 系统。越来越多的 *nix 系统被纳入“物联网”,我想编写一些高度兼容的自制脚本,这些脚本也可以与这些设备一起使用。 (这就是我开始使用 Bash 的原因。)
答案1
如果您正在寻找可移植性,那么您可以打赌,/bin/sh
大多数系统上都会有这种功能,尽管不同的平台会以不同的方式实现它(例如,在 Ubuntu 上它链接到dash
,在 Fedora 上它链接到bash
)。但还是会有一些东西存在。
如果您使用它并以 POSIX 兼容的方式编写脚本,您将获得最佳的可移植性。
答案2
最常见的是/bin/sh
.它比 bash 更轻,这就是它在大多数基于 Linux 的嵌入式系统上实现的原因。