linux + 将 sh 脚本转换为 bash + 添加 bash 支持以前的 sh 脚本
linux + convert sh script to bash + dose bash support previos sh script
我们有很多 sh 脚本,我们想将它们升级到 bash 个脚本
我的问题:
剂量 bash 支持任何以前的 sh 脚本吗?
如果不是,在我们将 sh 转换为 bash 之前需要了解什么?
我的意思是我们需要在 sh 脚本中 change/replace 成为 bash 脚本
不幸的是,我只看到了将 shell 脚本从遗留 UNIX 平台转换为 bash 的尝试次数有限。平时都平安无事。
我记得一个有趣的例子是一个脚本,它使用 <<here
文档的不符合 POSIX 的扩展行为来实现 goto
,大概是为了简化移植 .bat
来自 MS-DOS 或 Windows 的脚本。 (“标签”以冒号 :
开头。)这在 bash 中不起作用,因为它遵循 POSIX 语义,所以这里的文档不能用于有条件地删除 bash 的部分=27=]脚本。
在实践中,更大的问题通常与从 shell 脚本调用的程序有关,它们也可能显示行为差异。
所以答案是一个相当不令人满意的“这取决于”,恐怕。
我们有很多 sh 脚本,我们想将它们升级到 bash 个脚本
我的问题:
剂量 bash 支持任何以前的 sh 脚本吗?
如果不是,在我们将 sh 转换为 bash 之前需要了解什么? 我的意思是我们需要在 sh 脚本中 change/replace 成为 bash 脚本
不幸的是,我只看到了将 shell 脚本从遗留 UNIX 平台转换为 bash 的尝试次数有限。平时都平安无事。
我记得一个有趣的例子是一个脚本,它使用 <<here
文档的不符合 POSIX 的扩展行为来实现 goto
,大概是为了简化移植 .bat
来自 MS-DOS 或 Windows 的脚本。 (“标签”以冒号 :
开头。)这在 bash 中不起作用,因为它遵循 POSIX 语义,所以这里的文档不能用于有条件地删除 bash 的部分=27=]脚本。
在实践中,更大的问题通常与从 shell 脚本调用的程序有关,它们也可能显示行为差异。
所以答案是一个相当不令人满意的“这取决于”,恐怕。