আমি যে ব্যাশ চালাচ্ছি তার সংস্করণটি কীভাবে খুঁজে পাব?


161

(বাশ শিখতে) আমি টাইপ করে বাশ সংস্করণটি যাচাই করার চেষ্টা করছিলাম /bin/bash -v

এটি স্ক্রিনে পুরো পাঠ্য আউটপুট করেছিল (.bashrc এর সামগ্রী এবং এটি থেকে উত্পন্ন অন্যান্য ফাইলগুলি)।

সেই আদেশের ফলে আমি কি কিছু স্ক্রু আপ করতে পারি (যেমন কিছু কনফিগার ফাইল ওভাররাইট করা / ভুল পরিবেশের ভেরিয়েবল সেট করা ইত্যাদি)?

-vস্যুইচটি কী জন্য রয়েছে সে সম্পর্কে ডকুমেন্টেশনও খুঁজে পাচ্ছি না ।


যদি আপনি দৌড়ে থাকেন তবে আপনি bash -vভার্বোজ মোড সক্রিয় করে একটি নতুন ব্যাশ শেলটি চালু করেছেন, যাতে আপনি আরও কমান্ডের জন্য ভার্বোজ আউটপুট দেখতে পাবেন (খুব কমপক্ষে আপনি দেখতে পাবেন printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}")। ভার্বোসটি শেষ করতে, exitকমান্ডটি টাইপ করুন - আপনি আসল নন-ভার্বোজ বাশ শেল (বা যে কোনও শেল আপনি ছিলেন) এ ফিরে আসবেন।
এডিটিসি

উত্তর:


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


এই পদ্ধতির সমস্যাটি হ'ল আপনি 100% নিশ্চিত হতে পারবেন না যে কোনও স্ক্রিপ্ট, প্রতীকী লিঙ্ক বা অন্য কোনও ধরণের গণ্ডগোলের কনফিগারেশন, যিনি লগইনে কোনও পরিবেশের পরিবর্তনশীল পরিবর্তন করেছেন। আমি নীচে উত্তর হিসাবে, Ctrl + x Ctrl + v আপনাকে পরিবেশগত পরিবর্তনশীল নির্বিশেষে, বর্তমানে আপনি যে চলমান বাশ সংস্করণটি চালিয়ে যাচ্ছেন তা আপনাকে প্রদর্শন করবে।
ভেজাত্রিপি

98

বাশ চালানোর সময় (যেমন থেকে gnome-terminal) আপনি BASH_VERSIONপরিবেশের ভেরিয়েবলের মান পরীক্ষা করতে পারেন ।

$ echo $BASH_VERSION
4.2.37(1)-release

মানটি যদি খালি থাকে তবে আপনি চালাচ্ছেন না bash


11
এটি কেবল চালনার চেয়ে ভাল bash --version, কারণ এটি নিশ্চিত করে যে আপনি বর্তমানে ব্যাশ চালাচ্ছেন, কেবল এটি নয় যে আপনি আপনার সিস্টেমে বাশ ইনস্টল করেছেন।
ফ্লিম

1
bash --versionআপনি বর্তমানে ব্যবহৃত ব্যাশটি +1 দেখায় না।
গ্যাবিও

সাবধানতা: একটি সেট BASH_VERSIONআপনি চলমান তা নিশ্চিত করে না bash: export BASH_VERSION; csh -c 'echo $BASH_VERSION $SHELL $shell'তাই পাশাপাশি $BASH_VERSIONসেটও করা যেতে পারেcsh
টিনো

@ টিনো ভাল, আপনি একটি করতে পারেন $SHELL --version, তবে আবার শেলটি ওভাররাইট করা হতে পারে (এবং সমস্ত শেল - রূপান্তর পতাকাটি সমর্থন করে না)।
বুফ

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প্যারামিটারের বিস্তৃতিটি পড়ার আগে এটি স্বয়ংক্রিয়ভাবে পুনরায় সেট করে।
এলিয়াহ

এলিয়াকাগান, আমার আপডেট হওয়া ও আপগ্রেড হওয়া 16.04 এলটিএস সিস্টেমটি 16.04.1 আইসো ফাইল থেকে ইনস্টল করা হয়েছে এবং bash --versionবলে 4.3.48(1)-releaseএবং apt-cache policy bashবলেছে 4.3-14ubuntu1.2এবং আমি পরীক্ষা করেছি যে এক্সিকিউটেবল bashফাইলটি 'বাশ' প্যাকেজ থেকে আসে। এটি কীভাবে ব্যাখ্যা করা উচিত? এর জন্যও একই রকম অমিল রয়েছে usb-creator-gtkএবং সেক্ষেত্রে অ্যাপ্ট-ক্যাশে আউটপুট সঠিক। - আমরা কি এই সিদ্ধান্তে পৌঁছাতে পারি যে উচ্চতর সংস্করণ নম্বরটি সঠিক নম্বর (এবং কেউ অন্যটিকে আপডেট করতে ভুলে গিয়েছেন)?
সুডোডাস

1
@ সুডডাস একটি প্রোগ্রামের সংস্করণ নম্বর এটিতে আসা এপিটি প্যাকেজের সংস্করণ নম্বর থেকে আলাদা হতে পারে That's আপনি এখানে এটিই দেখছেন। 4.3.48...বাশের 4.3-14...সংস্করণ, এটি bashপ্যাকেজের সংস্করণ ।
wjandrea

@ এলিয়াকাগান আমি আগে উল্লেখ করতে ভুলে গেছি, আমাকে সংশোধন করার জন্য ধন্যবাদ! আমি জ্ঞান প্রশংসা করি।
wjandrea

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.