Al ingresar shopt
obtendrá una lista con todas las opciones de bash que no incluye globstar para la bash de Apple. Probablemente bash se compila sin soporte para esta opción.
Para obtener un bash ejecutable con globstar, instale brew y brew's bash:
$ brew install bash
$ chsh -s /usr/local/bin/bash
$ sudo bash -c 'echo /usr/local/bin/bash >> /etc/shells'
$ ln -s /usr/local/bin/bash /usr/local/bin/bash-terminal-app
Luego cambie el shell predeterminado abierto en Terminal a / usr / local / bin / bash-terminal-app y suprima el mensaje '¿Desea cerrar esta pestaña?' cuando cierre ventanas y pestañas, agregue 'bash' a la lista de exclusiones.
La nueva lista de opciones es entonces:
$ shopt
autocd off
cdable_vars off
cdspell off
checkhash off
checkjobs off
checkwinsize on
cmdhist on
compat31 off
compat32 off
compat40 off
compat41 off
compat42 off
compat43 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
globasciiranges off
globstar off
gnu_errfmt off
histappend off
histreedit off
histverify off
hostcomplete on
huponexit off
inherit_errexit off
interactive_comments on
lastpipe off
lithist off
login_shell on
mailwarn off
no_empty_cmd_completion off
nocaseglob off
nocasematch off
nullglob off
progcomp on
promptvars on
restricted_shell off
shift_verbose off
sourcepath on
xpg_echo off
En ciertas circunstancias / usr / local / share / y sus subcarpetas son propiedad de root (por ejemplo, después de instalar smartmontools, nmap, node, etc. con sus instaladores personalizados) y algunos de los pasos fallan. En mi opinión, se guarda en chown -R
las carpetas para el usuario administrador que instaló brew / bash. En mi instalación casi vainilla de macOS y brew, / usr / local / share y / usr / local / share / locale son propiedad de este usuario administrador.
ln -s
fue el paso que faltaba para mí./usr/local/bin/bash
no fue creado porbrew
. Además, ¿qué esbash-terminal-app
?/usr/local/Cellar/...
y generalmente vinculados/usr/local/bin
. Sin embargo, por alguna razón,bash
parece ser una excepción.brew doctor
revela que la razón probable es quebash
no se pudo vincular, pero si lo intentobrew link bash
, obtengo que el enlace simbólico no se pudo crear porque/usr/local/share/locale/ca/LC_MESSAGES is not writable
. Verifiqué y nobrew
estaba instalado como root, como se aconseja en la página de inicio./usr/local/share/locale/ca/LC_MESSAGES
de hecho es propiedad de root, por lo que no se puede escribir sin acceso de root, pero no estoy seguro de si puedochown
hacerlo de forma segura . ¿Se supone incluso que este archivo es propiedad de root?