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./usr/local/bin/bash
n'a pas été créé parbrew
. Et qu'est-ce que c'estbash-terminal-app
?/usr/local/Cellar/...
et généralement liés/usr/local/bin
. Pour une raison quelconque, celabash
semble être une exception.brew doctor
révèle la raison probable comme étant qu'ilbash
n'a pas pu être lié, mais si j'essaye,brew link bash
j'obtiens que le lien symbolique n'a pas pu être créé car/usr/local/share/locale/ca/LC_MESSAGES is not writable
. J'ai vérifié et n'ai pasbrew
été installé en tant que root, comme indiqué dans la page d'accueil./usr/local/share/locale/ca/LC_MESSAGES
appartient en effet à root, donc non accessible en écriture sans accès root, mais je ne sais pas si je peux le faire en toute sécuritéchown
. Ce fichier est-il même censé appartenir à root?