मैं चलाए जा रहे बैश के संस्करण को कैसे खोज सकता हूं?


161

(लर्निंग बैश) मैं बैश संस्करण की जाँच करने की कोशिश कर रहा था इसलिए मैंने टाइप किया /bin/bash -v

स्क्रीन पर पाठ की एक पूरी बहुत आउटपुट (.bashrc की सामग्री, और इससे प्राप्त अन्य फाइलें)।

क्या मैं उस आदेश के कारण कुछ को खराब कर सकता हूं (जैसे कुछ कॉन्फिग फाइलों को लिखना / गलत वातावरण चर आदि स्थापित करना)?

मुझे यह भी पता नहीं चल सकता है कि -vस्विच क्या है।


यदि आप भाग गए bash -vहैं तो आपने क्रिया मोड के साथ एक नया बैश शेल सक्रिय किया है, इसलिए आपको आगे के आदेशों के लिए वर्बोज़ आउटपुट दिखाई देगा (बहुत कम से कम आप देखेंगे printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}")। वर्बोसिटी को समाप्त करने के लिए, exitकमांड टाइप करें - आप मूल नॉन-वर्बोज़ बैश शेल (या जो भी शेल आप थे) में वापस आ जाएंगे।
ADTC

जवाबों:


165

-vबैश के लिए पैरामीटर वर्बोज़ के लिए खड़ा है, और पार्टी का निर्देश यह क्या कर रहा है के बारे में जितना संभव हो उतना जानकारी बाहर मुद्रित करने के लिए। स्टार्टअप पर, यह सभी कॉन्फ़िगरेशन को प्रिंट करेगा, जो इसमें पढ़ रहा है।

बैश के लिए संस्करण जानकारी को प्रिंट करने के लिए, उपयोग करें bash --version


महान! मुझे बैश के लिए स्विच की सूची भी मिली ।
ज़ब्बा

33
वैकल्पिक रूप से, यदि आप पहले से ही बैश शेल चला रहे हैं, तो आप विशेष BASH_VERSION चर की सामग्री को आउटपुट कर सकते हैं। echo "$BASH_VERSION"। अलग तत्वों में प्रत्येक संस्करण संख्या वाले एक विशेष सरणी (BASH_VERSINFO) भी है। if ((BASH_VERSINFO[0] < 4)); then echo "Sorry, you need at least bash-4.0 to run this script." >&2; exit 1; fi
जिरह

2
टाइपो, कुछ होना चाहिए [ "${BASH_VERSINFO}" -lt 4 ]या[ "${BASH_VERSINFO[0]}" -lt 4 ]
bufh

बहुत वर्बोज़, ज्यादा के साथ आसान askubuntu.com/a/899187/1004
Sorin

इस पद्धति के साथ समस्या यह है कि आप किसी भी स्क्रिप्ट, प्रतीकात्मक लिंक, या किसी अन्य प्रकार के गड़बड़ कॉन्फ़िगरेशन को 100% सुनिश्चित नहीं कर सकते हैं, जिसने लॉगिन पर किसी भी पर्यावरण चर को बदल दिया है। जैसा कि मैंने नीचे उत्तर दिया है, Ctrl + x Ctrl + v आपको किसी भी परिवेश चर की परवाह किए बिना वास्तव में bash संस्करण दिखाएगा।
वेजेट्रिपी

98

बैश चलाते समय (जैसे से gnome-terminal) आप BASH_VERSIONपर्यावरण चर का मान जांच सकते हैं ।

$ echo $BASH_VERSION
4.2.37(1)-release

यदि मान रिक्त है, तो आप नहीं चल रहे हैं bash


11
यह केवल चलाने से बेहतर है bash --version, क्योंकि यह पुष्टि करता है कि आप वर्तमान में bash चला रहे हैं, न कि केवल आपने अपने सिस्टम पर bash स्थापित किया है।
फ्लिम

1
+1 bash --versionवह बैश नहीं दिखाता है जो आप वर्तमान में उपयोग कर रहे हैं।
गाबियो

सावधान: एक सेट BASH_VERSIONसुनिश्चित नहीं है कि आप चल रहे हैं bash: export BASH_VERSION; csh -c 'echo $BASH_VERSION $SHELL $shell'है, इसलिए $BASH_VERSIONमें सेट किया जा सकता cshके रूप में अच्छी तरह से
टीनो

@ अच्छी तरह से, आप एक कर सकते हैं $SHELL --version, लेकिन फिर शेल को अधिलेखित किया जा सकता है (और सभी शेल --version ध्वज का समर्थन नहीं करते हैं)।
bufh

37

एक प्रमुख शॉर्टकट है जो वर्तमान शेल जानकारी को दिखाने का निर्देश देता है:

Ctrl+ x Ctrl+v

से man bash

   display-shell-version (C-x C-v)
          Display version information about the current instance of bash.

यह सबसे अच्छा विकल्प है यदि आपने पर्यावरण चर के साथ गड़बड़ की है।



1

सामान्य --versionआपको बहुत अधिक मल्टी-लाइन बॉयलरप्लेट दे सकता है, इसलिए मैं जो उपयोग कर रहा हूं वह है

bash -c 'echo $BASH_VERSION'


4
@wjandrea यह पावेल नाडोलस्की के जवाब से अलग है । यह एक नए bashशेल में कमांड चलाता है । एक तरीका यह उपयोगी है कि इसे वर्तमान में उपयोग किए जा रहे शेल की आवश्यकता नहीं है bash। एक और वह है, यहां तक ​​कि, एक अलग मूल्य पर सेट करना bashसंभव है (हालांकि अच्छा नहीं ) BASH_VERSION। इसे पर्यावरण चर के रूप में भी निर्यात किया जा सकता है। फिर भी दौड़ने के बाद भी export BASH_VERSION=foobar, यहां दी गई विधि काम करती है, क्योंकि नया bashशेल अपने आप ही रीसेट हो जाता है, BASH_VERSIONजो पैरामीटर विस्तार को पढ़ने से पहले अपने आप ही रीसेट हो जाता है।
एलिया कगन

@EliahKagan, 16.04.1 iso फ़ाइल से स्थापित मेरी अद्यतन और अपग्रेड की गई 16.04 LTS प्रणाली में, bash --versionकहता 4.3.48(1)-releaseऔर apt-cache policy bashकहता है 4.3-14ubuntu1.2और मैंने जाँच की है कि निष्पादन योग्य bashफ़ाइल पैकेज 'बैश' से आती है। इसकी व्याख्या कैसे की जानी चाहिए? के लिए एक समान बेमेल है usb-creator-gtk, और उस स्थिति में apt-cache आउटपुट सही है। - क्या हम यह निष्कर्ष निकाल सकते हैं कि उच्च संस्करण संख्या सही है (और कोई व्यक्ति दूसरे को अपडेट करना भूल गया है)?
15

1
@sudodus किसी प्रोग्राम का वर्जन नंबर APT पैकेज के वर्जन नंबर से अलग हो सकता है। यह वही है जो आप यहां देख रहे हैं। 4.3.48...बैश 4.3-14...का संस्करण है, bashपैकेज का संस्करण है ।
वेजेंड्रिया

@EliahKagan मैं पहले उल्लेख करना भूल गया, मुझे सुधारने के लिए धन्यवाद! मैं ज्ञान की सराहना करता हूं।
wjandrea

0

केवल संस्करण प्राप्त करने के लिए और बहुस्तरीय पाठ के लिए नहीं:

$ bash --version | head -1 | cut -d ' ' -f 4
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.