| # This program is free software: you can redistribute it and/or modify |
| # it under the terms of the GNU General Public License as published by |
| # the Free Software Foundation, either version 3 of the License, or |
| # (at your option) any later version. |
| # |
| # This program is distributed in the hope that it will be useful, |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| # GNU General Public License for more details. |
| # |
| # You should have received a copy of the GNU General Public License |
| # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| # |
| # let's try an error message first |
| shopt -z |
| |
| # first, set up a known environment |
| shopt -u cdable_vars |
| shopt -s cdspell |
| shopt -u checkhash |
| shopt -u checkwinsize |
| shopt -s cmdhist |
| shopt -u dotglob |
| shopt -u execfail |
| shopt -s expand_aliases |
| shopt -u extglob |
| shopt -u histreedit |
| shopt -u histappend |
| shopt -u histverify |
| shopt -s hostcomplete |
| shopt -u huponexit |
| shopt -s interactive_comments |
| shopt -u lithist |
| shopt -u mailwarn |
| shopt -u nocaseglob |
| shopt -u nullglob |
| shopt -s promptvars |
| shopt -u shift_verbose |
| shopt -s sourcepath |
| shopt -u xpg_echo |
| |
| # Now, start checking the output |
| builtin printf -- "--\n" |
| shopt -p # list 'em all |
| builtin printf -- "--\n" |
| # test specific variables |
| shopt -p huponexit |
| shopt -p checkwinsize |
| shopt -p sourcepath |
| |
| builtin printf -- "--\n" |
| shopt -s -p |
| builtin printf -- "--\n" |
| shopt -u -p |
| builtin printf -- "--\n" |
| shopt -u |
| |
| # Now set up another known environment |
| set +o allexport |
| set -o braceexpand |
| set +o errexit |
| set -o hashall |
| set -o histexpand |
| set +o keyword |
| set -o monitor |
| set +o noclobber |
| set +o noexec |
| set +o noglob |
| set +o notify |
| set +o nounset |
| set +o onecmd |
| set +o physical |
| set -o privileged |
| set +o verbose |
| set +o xtrace |
| set -o history |
| set +o ignoreeof |
| set -o interactive-comments |
| set +o posix |
| set -o emacs |
| set +o vi |
| |
| # list 'em all |
| builtin printf -- "--\n" |
| shopt -o -p |
| |
| builtin printf -- "--\n" |
| set -o |
| builtin printf -- "--\n" |
| set +o |
| |
| # test specific variables |
| builtin printf -- "--\n" |
| shopt -p -o history |
| shopt -p -o verbose |
| |
| builtin printf -- "--\n" |
| shopt -s -p -o |
| builtin printf -- "--\n" |
| shopt -u -p -o |
| builtin printf -- "--\n" |
| shopt -u -o |
| |
| # errors |
| builtin printf -- "--\n" |
| shopt -p xyz1 |
| shopt -o -p xyz1 |
| |
| ${THIS_SH} ./shopt1.sub |
| |
| # test whether or not temporary variable assignments that manipulate posix |
| # mode restore the previous state or the default non-posix state |
| ${THIS_SH} -c 'shopt -s expand_aliases ; shopt expand_aliases ; POSIXLY_CORRECT=y true ; shopt expand_aliases' |