При 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
был для меня пропущенным шагом./usr/local/bin/bash
не был созданbrew
. Кроме того, что этоbash-terminal-app
?/usr/local/Cellar/...
и обычно связаны в/usr/local/bin
. По какой-то причине,bash
кажется, является исключением.brew doctor
выявляет вероятную причину, котораяbash
не может быть связана, но если я попытаюсь,brew link bash
я получаю, что символическая ссылка не может быть создана, потому что/usr/local/share/locale/ca/LC_MESSAGES is not writable
. Я проверил и неbrew
был установлен как root, как советовали на домашней странице./usr/local/share/locale/ca/LC_MESSAGES
действительно принадлежит root, поэтому без прав на запись он не доступен для записи, но я не уверен, смогу ли я просто безопасноchown
это сделать. Предполагается ли, что этот файл принадлежит root?