如何获得最新的"设置"变量

时间:2014-08-26 03:34:15

标签: bash shell

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

set -x或set -v“打开”功能

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

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

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

    set -abcdef 

    # do stuff

    # <restore status of "set">

谢谢!

1 个答案:

答案 0 :(得分:1)

这是一个简单的解决方案:

# In called script/function
(
  set -abcdef 
  # do stuff
)

(...)是子壳;当子壳完成时,它的环境就会随之消失,并且你在进入时会回到环境中。

如果情况过于激烈,您可以复制$-$SHELLOPTS以保留当前选项(SHELLOPTS包含一些不具备的选项单字符缩写,所以它更通用),然后费力地从那恢复。