linux + 将 sh 脚本转换为 bash + bash 是否支持以前的 sh 脚本

标签 linux bash shell sh redhat

<分区>

我们有很多 sh 脚本,我们想将它们升级为 bash 脚本

我的问题:

bash 是否支持任何以前的 sh 脚本?

如果不是,在我们将 sh 转换为 bash 之前需要知道什么? 我的意思是我们需要在 sh 脚本中更改/替换为 bash 脚本

最佳答案

不幸的是,我只看到了有限数量的将 shell 脚本从遗留 UNIX 平台转换为 bash 的尝试。通常都平安无事。

我记得一个有趣的例子是一个脚本,它对 <<here 使用了不符合 POSIX 规范的扩展行为。执行 goto 的文件,大概是为了简化移植 .bat来自 MS-DOS 或 Windows 的脚本。 (“标签”以冒号 : 开头。)这在 bash 中不起作用,因为它遵循 POSIX 语义,所以这里的文档不能用于有条件地删除 shell 脚本的部分。

在实践中,更大的问题通常与从 shell 脚本调用的程序有关,它们也可能显示出行为差异。

所以恐怕答案是“视情况而定”并不令人满意。

关于linux + 将 sh 脚本转换为 bash + bash 是否支持以前的 sh 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47067892/

相关文章:

linux - 防止变量覆盖到 submakefile

linux - 了解 Chromium 源代码结构

java - 运行 java exec 命令,总是需要应用程序的完整绝对路径?

shell - 执行 shell 时 Jenkins 构建失败

bash - 将两个命令的输出连接成一行

linux - rsync 未更改文件

linux - 如何将数组值添加到文本文件中特定行的开头

linux - Bash 自定义

bash - 无法使用 curl 命令下载 github 项目

linux - `sort -t' ' -rn +2 -3` 在此管道中做什么?