En entrant shopt
, vous obtiendrez une liste avec toutes les options de bash qui n'inclut pas globstar pour le bash d'Apple. Bash est probablement compilé sans prise en charge de cette option.
Pour obtenir un exécutable bash avec globstar install brew et 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
Ensuite, changez le shell par défaut ouvert dans Terminal en / usr / local / bin / bash-terminal-app et supprimez le 'Voulez-vous fermer cet onglet?' lorsque vous fermez les fenêtres et les onglets, ajoutez «bash» à la liste des exclusions.
La nouvelle liste d'options est alors:
$ 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
Dans certaines circonstances, / usr / local / share / et ses sous-dossiers appartiennent à root (par exemple, après l'installation de smartmontools, nmap, node, etc. avec leurs programmes d'installation personnalisés) et certaines étapes échouent. À mon avis, il est enregistré dans chown -R
les dossiers de l'utilisateur administrateur qui a installé brew / bash. Dans mon installation presque vanille de macOS et de brew, / usr / local / share et / usr / local / share / locale appartiennent à cet utilisateur administrateur.
ln -s
était l'étape manquante pour moi.