globstar: ชื่อตัวเลือกเชลล์ที่ไม่ถูกต้องบน macOS แม้มี bash 4.X


21

ใหม่ตัวเลือกที่ต้องใช้globstar bash 4ดังนั้น .. bashเราอยู่ไหน

 $bash --version
GNU bash, version 4.4.12(1)-release (x86_64-apple-darwin16.3.0)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

ให้เราลองดูglobstar:

13:39:28/forecast-fresh $shopt -s globstar
-bash: shopt: globstar: invalid shell option name
13:39:32/forecast-fresh $

มีวิธีใดบ้างในการรับการสนับสนุนบน MacOS

คำตอบ:


18

การเข้าร่วมshoptจะทำให้คุณได้รับรายชื่อพร้อมตัวเลือกทุบตีทั้งหมดซึ่งไม่รวมถึง globstar สำหรับการทุบตีของ Apple อาจทุบตีรวบรวมโดยไม่ได้รับการสนับสนุนสำหรับตัวเลือกนี้

ในการรับ bash ที่สามารถเรียกใช้ได้ด้วยการติดตั้ง globstar และ Brew ของ 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 เป็นของผู้ใช้ admin นี้


นั่นln -sเป็นขั้นตอนที่ขาดหายไปสำหรับฉัน
javadba

1
มันไม่ได้ผลสำหรับฉัน ไม่ได้ถูกสร้างขึ้นโดย/usr/local/bin/bash brewนอกจากนี้คือbash-terminal-appอะไร
glS

@klanomath Sierra 10.12.6 และก่อ 1.5.2 executables จะถูกติดตั้งใน/usr/local/Cellar/...และมักจะเชื่อมโยง/usr/local/binมา ด้วยเหตุผลบางอย่างbashดูเหมือนว่าจะเป็นข้อยกเว้น brew doctorเผยเหตุผลน่าจะเป็นว่าbashไม่สามารถเชื่อมโยง แต่ถ้าฉันพยายามที่brew link bashฉันได้รับที่ symlink /usr/local/share/locale/ca/LC_MESSAGES is not writableไม่สามารถสร้างขึ้นเพราะ ฉันตรวจสอบและไม่ได้brewรับการติดตั้งในฐานะรูทตามที่แนะนำในหน้าแรก
glS

/usr/local/share/locale/ca/LC_MESSAGESแท้จริงแล้วเป็นเจ้าของโดย root ดังนั้นจึงไม่สามารถเขียนได้หากไม่มีการเข้าถึงรูท แต่ฉันไม่แน่ใจว่าจะปลอดภัยchownได้หรือไม่ ไฟล์นี้ควรจะเป็นของ root หรือไม่?
glS

@glS เพิ่มภาคผนวก ...
klanomath
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.