ABck的问题:如果你有
/bin/sh
一个链接的bash,那么bash将不会调用时为具有相同的行为/bin/sh
,因为它不会在调用时/bin/bash
。当称为时sh
,它将限制自己为大多数POSIX兼容以及一组有限的扩展。
这是否意味着每当我在Linux中遇到带有shebang的shell脚本时#!/bin/sh
,即使在该发行版上,它bin/sh
都是到另一个shell(例如破折号或bash)的符号链接,它应该与bourne shell 100%兼容,因为是否将自身限制为一组有限的扩展名?这样我可以在FreeBSD中执行它们吗?有例外吗?还是我应该确定它会起作用?
因此,如果在发行版上bin/sh
是的符号链接bin/bash
,并且使用了脚本#!/bin/sh
并且该脚本包含bashism,则该脚本将不会运行,因为bash会喜欢处于sh模式?