Fácil pero perdido en la historia. El set
comando se usó originalmente para modificar el entorno de línea de comando de los shells originales de Unix /bin/sh
. Luego, a medida que evolucionaron varias versiones de Unix, y se agregaron nuevos sabores de shell, las personas se dieron cuenta de que necesitaban poder cambiar más cosas (del entorno) para mantener la compatibilidad de los scripts de shell. En ese momento del golpe se puso muy popular y los adicionales sh ell opt se necesitaba iones, la introducción shopt
.
En realidad se puede ver estas compat intentos bilidad en el shopt
comando.
$ shopt
autocd off
cdable_vars off
cdspell off
checkhash off
checkjobs off
checkwinsize off
cmdhist on
compat31 off
compat32 off
compat40 off
compat41 off
compat42 off
complete_fullquote on
direxpand off
dirspell off
dotglob off
execfail off
expand_aliases on
extdebug off
extglob off
extquote on
failglob off
force_fignore on
globstar off
globasciiranges off
gnu_errfmt off
histappend on
histreedit off
histverify off
hostcomplete on
huponexit off
interactive_comments on
lastpipe off
lithist off
login_shell on
mailwarn off
no_empty_cmd_completion off
nocaseglob on
nocasematch off
nullglob off
progcomp on
promptvars on
restricted_shell off
shift_verbose off
sourcepath on
xpg_echo off
Pero no en el set
comando.
$ set -o
allexport off
braceexpand on
emacs on
errexit off
errtrace off
functrace off
hashall on
histexpand on
history on
igncr off
ignoreeof off
interactive-comments on
keyword off
monitor on
noclobber off
noexec off
noglob off
nolog off
notify off
nounset off
onecmd off
physical off
pipefail off
posix off
privileged off
verbose off
vi off
xtrace off
help set
yhelp shopt
verificar que incluso sus autores piensan que hacen lo mismo.