Dash中显式POSIX模式替代方案咨询:CentOS 7与Xubuntu Shell差异
关于Dash中替代
set -o posix的说明 嘿,这个问题其实很好解释——Dash本身就是完全遵循POSIX标准的shell,它默认就运行在POSIX兼容模式下,根本不需要set -o posix这个选项,这也是你执行该命令时提示“no such option: posix”的原因。
对比一下CentOS 7里的/bin/sh:它其实是bash的软链接,bash是功能更丰富的shell,默认带有很多超出POSIX规范的扩展特性,所以需要set -o posix来强制它切换到严格POSIX兼容的行为模式。
如果你的脚本是为了保证POSIX兼容性才加的set -o posix,那在Dash环境里完全可以删掉这条命令,直接运行脚本就行,Dash会自动以符合POSIX标准的方式执行所有逻辑。
要是你想确认Dash的POSIX属性,可以试试这两个小操作:
- 查看Dash的手册:
man dash,里面会明确标注它是POSIX-compliant shell。 - 写个带bash特有语法的小脚本(比如用
[[ ]]做条件判断)在Dash里运行,会发现它不支持这类非POSIX语法,这也能佐证它的严格POSIX特性。
内容的提问来源于stack exchange,提问作者kensuke1984
相关产品推荐
相关产品推荐

