ग्लोबस्टार: मैक 4 पर अमान्य शेल विकल्प नाम, यहां तक ​​कि बैश 4.X के साथ


22

नए 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 पर इस के लिए समर्थन पाने के लिए कोई रास्ता नहीं है?

जवाबों:


19

में प्रवेश कर shoptआप सभी बैश विकल्प जो एप्पल के बैश के लिए globstar शामिल नहीं है के साथ एक सूची मिलेगी। संभवतः बैश को इस विकल्प के समर्थन के बिना संकलित किया गया है।

ग्लोबस्टार के साथ एक बाश निष्पादन योग्य पाने के लिए काढ़ा और काढ़ा स्थापित करें:

$ 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 / लोकल / बिन / बैश-टर्मिनल-ऐप में बदलें और 'क्या आप इस टैब को बंद करना चाहते हैं?' विंडो और टैब बंद करते समय संकेत दें कि बहिष्करण की सूची में 'बैश' जोड़ें।

नई विकल्प सूची तब है:

$ 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 / लोकल / शेयर / और उसके सबफ़ोल्डर्स का स्वामित्व रूट द्वारा किया जाता है (उदाहरण के लिए, अपने कस्टम इंस्टालर के साथ स्मार्टमूल, नैम्प, नोड आदि को स्थापित करने के बाद) और कुछ चरण विफल हो जाते हैं। मेरी राय में यह chown -Rफ़ोल्डर के लिए उस व्यवस्थापक उपयोगकर्ता के लिए है जो काढ़ा / बैश स्थापित करता है। मेरे लगभग वैनिला इंस्टॉलेशन में macOS और काढ़ा, / usr / लोकल / शेयर और / usr / लोकल / शेयर / लोकेल इस व्यवस्थापक उपयोगकर्ता के स्वामित्व में हैं।


वह आखिरी ln -sमेरे लिए गायब कदम था।
जवाद १। ’१

1
यह मेरे लिए काम नहीं करता है। /usr/local/bin/bashद्वारा नहीं बनाया गया था brew। इसके अलावा, क्या है bash-terminal-app?
glS

@klanomath सिएरा 10.12.6 और काढ़ा 1.5.2। निष्पादन योग्य स्थापित होते हैं /usr/local/Cellar/...और आमतौर पर इसमें जुड़े होते हैं /usr/local/bin। हालांकि किसी कारण से, bashयह एक अपवाद प्रतीत होता है। brew doctorसंभावित कारण का पता चलता है जो bashलिंक नहीं किया जा सकता है, लेकिन अगर मैं कोशिश brew link bashकरूं तो मुझे लगता है कि सिम्लिंक इसलिए नहीं बनाया जा सका /usr/local/share/locale/ca/LC_MESSAGES is not writable। मैंने जांच की और रूट के रूप में स्थापित नहीं किया brewगया था , जैसा कि होम पेज में सलाह दी गई है।
glS

/usr/local/share/locale/ca/LC_MESSAGESवास्तव में रूट के स्वामित्व में होता है इसलिए रूट एक्सेस के बिना यह लिखने योग्य नहीं है, लेकिन मुझे यकीन नहीं है कि मैं इसे सुरक्षित रूप से कर सकता हूं chown। क्या यह फ़ाइल रूट के स्वामित्व वाली है?
glS

@glS जोड़ा परिशिष्ट ...
13
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.