If ! shopt –oq posix; then
我搜索了有关此问题的所有页面,但没有找到明确的解释。有人可以帮我吗?
答案1
假设If
实际上是if
,该行引入了一条if
运行命令! shopt -oq posix
作为测试的语句。
shopt
shell中的实用程序是bash
用于设置某些 shell 选项的实用程序。该实用程序还可用于测试是否设置了特定的 shell 选项。这就是该实用程序if
在问题的陈述中的用途。
该-o
选项使其期望给定的选项是有效的选项之一set -o
(参见help set
)bash
,并且该-q
选项使实用程序安静,即它只会产生退出状态但不会产生输出。语句shopt
将使用的退出状态if
来确定是否执行语句体if
。
该测试检查posix
shell 选项是否在 shell 中设置bash
,如果没有设置(调用结果的解释shopt
与前面的 相反),则将执行语句!
的主体。if
另请参阅help shopt
交互式bash
会话。
该shopt
实用程序不是标准实用程序,而是 shell 专门提供的内置实用程序bash
。