Wenn shopt
Sie eingeben, erhalten Sie eine Liste mit allen Bash-Optionen, die Globstar für Apples Bash nicht enthalten. Wahrscheinlich wird Bash ohne Unterstützung für diese Option kompiliert.
Um eine ausführbare Bash-Datei mit globstar zu erhalten, installieren Sie brew und 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
Ändern Sie dann die in Terminal geöffnete Standard-Shell in / usr / local / bin / bash-terminal-app und unterdrücken Sie die Option "Möchten Sie diese Registerkarte schließen?". Wenn Sie Fenster und Registerkarten schließen, fügen Sie der Ausschlussliste "bash" hinzu.
Die neue Optionsliste lautet dann:
$ 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
Unter bestimmten Umständen gehören / usr / local / share / und seine Unterordner root (z. B. nach der Installation von smartmontools, nmap, node usw. mit ihren benutzerdefinierten Installationsprogrammen), und einige der Schritte schlagen fehl. Meiner Meinung nach wird es in chown -R
den Ordnern des Administrators gespeichert, der brew / bash installiert hat. In meiner fast Vanilla-Installation von macOS und brew gehören / usr / local / share und / usr / local / share / locale diesem Administrator.
ln -s
war der fehlende Schritt für mich./usr/local/bin/bash
wurde nicht erstellt vonbrew
. Was ist das auchbash-terminal-app
?/usr/local/Cellar/...
und normalerweise verlinkt/usr/local/bin
. Aus irgendeinem Grundbash
scheint dies jedoch eine Ausnahme zu sein.brew doctor
zeigt den wahrscheinlichen Grund, dassbash
das nicht verknüpft werden konnte, aber wenn ich versuche,brew link bash
erhalte ich, dass der Symlink nicht erstellt werden konnte, weil/usr/local/share/locale/ca/LC_MESSAGES is not writable
. Ich habe es überprüft und esbrew
wurde nicht als root installiert, wie auf der Homepage empfohlen./usr/local/share/locale/ca/LC_MESSAGES
ist zwar im eigentum von root also ohne root-zugriff nicht beschreibbar, aber ich bin mir nicht sicher, ob ich es sicher geradechown
kann. Soll sich diese Datei überhaupt im Besitz von root befinden?