gpt4 book ai didi

linux - 在多个 shell 上运行 bash 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 11:53:12 25 4
gpt4 key购买 nike

所以我试图在 bash shell 上创建一个脚本,我开始知道该脚本不能在 ksh 或 dash shell 上运行。所以我的问题是如何制作一个脚本以在所有 3 个(bash、dash 和 ksh)shell 上运行。

最佳答案

为了编写保证在各种 shell 之间可移植的脚本,脚本必须是 POSIX Shell合规。 POSIX 是所有符合标准的 shell 必须支持的最小内置命令集。 Ash、Dash、Zsh、Bash、Ksh 等都是能够运行符合 POSIX 标准的脚本的 shell。

像 Bash 这样的 shell 所做的是添加一些很好的特性,使 shell 更强大,比如额外的参数扩展,用于转换为大写/小写、子字符串替换等。以及新的内置函数,如 [[ ... ]] 提供正则表达式匹配功能等。虽然这使 Bash 更强大,但也意味着使用“Bashisms”编写的脚本不再能够运行在所有其他 shell 下。 Ash、Dash 和其他最小 shell 不知道如何处理 Bash、Ksh 或 Zsh 添加的功能,因此失败。

要编写真正可移植的脚本,您必须将内容限制为 POSIX 命令语言提供的内容。

关于linux - 在多个 shell 上运行 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55379506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com