我在当前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
您可以使用存储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是关于这个问题的更多信息。