考虑到 POSIX 是所有 unices 中最接近通用标准的东西,我很想知道是否有专门支持它的 shell。尽管大多数现代 shell 都提供对 POSIX 的支持(并且可以毫无问题地运行 POSIX 兼容脚本),但它们在指出不兼容的功能方面做得不好。
是否有任何仅实现 POSIX 和 POSIX 的外壳程序,它会为任何不兼容的功能抛出错误?
编辑我想澄清一下,我不是要求编写可移植 shell 脚本的一般提示。评论中提到的相关问题已经涵盖了这一点。当我发现bash
有一个--posix
选项时,我想到了这个问题,但只是发现它只影响一些初始化行为,这并不是我正在寻找的。
我尝试在 bash 脚本中进行基本的字符串替换:
#!/bin/bash
x="I love Linux"
echo "${x/Linux/Unix}"
Run Code Online (Sandbox Code Playgroud)
它在我的 Mac 上运行良好,但在我的服务器上不起作用。我尝试了不同网站的不同示例,但总是收到错误:
Bad substitution
我的 bash 版本:GNU bash, Version 4.4.12(1)-release (x86_64-pc-linux-gnu)
我究竟做错了什么?