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

问题描述 投票:3回答:1

我在当前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
bash shell
1个回答
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是关于这个问题的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.