有没有办法将bash shell选项导出到子shell?

时间:2014-06-11 22:48:53

标签: bash shell

我在当前的shell&中设置了bash选项(例如shopt -e autocd)。想要将此选项导出/复制到新创建的子shell。有没有办法做到这一点?

Bash版本是:GNU bash,版本4.3.11(1)-release(x86_64-pc-linux-gnu)

示例:

$shopt -s autocd
$shopt autocd
autocd          on
$bash
$shopt autocd
autocd          off

1 个答案:

答案 0 :(得分:3)

您可以使用存储shell选项的相应shell变量BASHOPTS导出许多类似于shell变量的shell选项:

export BASHOPTS

以下是Bash手册页的一些信息:

  

BASHOPTS:   以冒号分隔的已启用shell选项列表。列表中的每个单词都是shopt内置命令的-s选项的有效参数(请参阅下面的SHELL BUILTIN命令)。出现在BASHOPTS中的选项是由shopt报告的选项。如果此变量在bash启动时处于环境中,则在读取任何启动文件之前,将启用列表中的每个shell选项。该变量是只读的。

有一个密切相关的变量SHELLOPTS,但是如果直接调用bash(例如通过 bash )而不是通过 sh ,这似乎只能运行良好,因为 sh 启用Bash的POSIX模式。 Here是有关此问题的更多信息。