При shopt
входе вы получите список со всеми опциями bash, который не включает globstar для bash от Apple. Вероятно, bash компилируется без поддержки этой опции.
Чтобы получить исполняемый файл bash с globstar, установите brew и bash 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
Затем измените оболочку по умолчанию, открытую в Терминале, на / usr / local / bin / bash-Terminal-app и отключите «Вы хотите закрыть эту вкладку?» подсказка при закрытии окон и вкладок, добавить 'bash' в список исключений.
Новый список параметров тогда:
$ 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
При определенных обстоятельствах / usr / local / share / и его подпапки принадлежат пользователю root (например, после установки smartmontools, nmap, node и т. Д. С их пользовательскими установщиками), и некоторые из этапов не выполняются. На мой взгляд, это сохраняет chown -R
в папки пользователя с правами администратора, который установил brew / bash. В моей почти полной установке macOS и brew этот пользователь-администратор принадлежит / usr / local / share и / usr / local / share / locale.
ln -s
был для меня пропущенным шагом.