[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
$SHELLOPTS after function with `local -'
From: |
Grisha Levit |
Subject: |
$SHELLOPTS after function with `local -' |
Date: |
Fri, 24 Jul 2020 02:14:16 -0400 |
The value of $SHELLOPTS is not always updated correctly after returning
from a function that modifies options after using `local -'.
For example:
fun() { local -; set -u; }; fun
[[ $- == *u* ]]; echo $? # 1
[[ :$SHELLOPTS: == *:nounset:* ]]; echo $? # 0
This seems to be the case for the following set of options:
interactive-comments, keyword, monitor, noclobber, noglob, nolog, notify,
nounset, onecmd, physical, pipefail, privileged, verbose, xtrace
While it works correctly for:
allexport, braceexpand, emacs, errexit, errtrace, functrace, hashall,
histexpand, history, ignoreeof, noexec, posix, vi
- $SHELLOPTS after function with `local -',
Grisha Levit <=