如何检查 shell 选项?

如何检查 shell 选项?

我想检查当前 shell 启用了哪些选项。例如,我想知道是否使用-x-e或任何其他选项调用了我。

source编写了一个带有 shebang 行的 shell 脚本,然后尝试在脚本末尾#!/bin/bash -x使用 a 关闭“x” 。现在我想检查我的行是否成功。set +xset +x

尝试的解决方案

我已经发现了printenv一些set方法来检查有关当前 shell 的一些信息,但它们似乎都不包含存储x e或类似内容的变量。

答案1

它在$-变量中。

查看set命令的文档-- 向下滚动到末尾,您将看到“当前的选项集可以在中找到$-”。

快速演示

$ bash
$ echo $-
himBH
$ set -f; set +H
$ echo $-
fhimB
$ [[ $- == *i* ]] && echo This is an interactive shell
This is an interactive shell

答案2

还有$BASHOPTS$SHELLOPTS

来源

相关内容