Bash 如何获取最新信息;“设置”;变量

Bash 如何获取最新信息;“设置”;变量,bash,shell,Bash,Shell,我的问题最好用一个例子来解释 设置-x或设置-v“打开”功能 设置+x或设置+v“关闭”功能 但是,如果我的脚本调用了另一个脚本或shell函数,那么在另一个脚本/函数中,如何获取这些设置的状态。e、 g # In called script/function # <save status of "set"> set -abcdef # do stuff # <restore status of "set"> 调用脚本/函

我的问题最好用一个例子来解释

设置-x或设置-v“打开”功能

设置+x或设置+v“关闭”功能

但是,如果我的脚本调用了另一个脚本或shell函数,那么在另一个脚本/函数中,如何获取这些设置的状态。e、 g

    # In called script/function
    # <save status of "set">

    set -abcdef 

    # do stuff

    # <restore status of "set">
调用脚本/函数中的
#
# 
集合-abcdef
#做事
# 

谢谢

以下是简单的解决方案:

# In called script/function
(
  set -abcdef 
  # do stuff
)
(…)
是一个子shell;当子shell完成时,它的环境也随之消亡,您将在进入时返回到环境


如果这太过激烈,您可以复制
$-
$SHELLOPTS
以保留当前选项(
SHELLOPTS
包括一些没有单字符缩写的选项,因此它更通用),然后费力地从中恢复。

参数
$-
包含一组单字母选项标志(尝试
echo$-
;它为我生成了
himBH
)。提到
set+o
shopt-p
可能会使恢复过程稍微不那么费力。。。除非你知道那些不起作用的原因。