我的问题最好用一个例子来解释。
set -x或set -v“打开”功能
设置+ x或设置+ v“关闭”功能
但是如果我的脚本调用另一个脚本或shell函数,那么在其他脚本/函数中,如何获取这些设置的状态。如,
# In called script/function
# <save status of "set">
set -abcdef
# do stuff
# <restore status of "set">
谢谢!
答案 0 :(得分:1)
这是一个简单的解决方案:
# In called script/function
(
set -abcdef
# do stuff
)
(...)
是子壳;当子壳完成时,它的环境就会随之消失,并且你在进入时会回到环境中。
如果情况过于激烈,您可以复制$-
或$SHELLOPTS
以保留当前选项(SHELLOPTS
包含一些不具备的选项单字符缩写,所以它更通用),然后费力地从那恢复。