GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa menemukan versi shell saya menggunakan perintah Linux?

Ada kasus ketika shell Anda tidak memiliki parameter baris perintah untuk menentukan versi secara langsung. Kasus ini adalah Bourne shell. Untuk Bourne Shell saya akan merekomendasikan untuk menggunakan skrip:https://www.in-ulm.de/~mascheck/various/whatshell/whatshell.sh. Skripnya cukup kecil sehingga tidak menjadi masalah besar untuk meninjaunya dan memahami cara kerjanya. Saya telah menguji skrip ini di dalam shell yang berbeda di Linux dan Solaris dan selalu memberikan versi shell untuk saya.

Beberapa contoh:

Ubuntu 18.04

$ sh -c './whatshell.sh'
ash (Busybox 1.x)
$ bash -c './whatshell.sh'
bash 4.4.19(1)-release

CentOS 4

$sh -c './whatshell.sh'
bash 3.00.15(1)-release

Solaris 10

~> sh -c './whatshell.sh'
ksh88 Version (..-)11/16/88i (posix octal base)
~> bash -c './whatshell.sh'
bash 4.1.7(3)-release
~> csh -c './whatshell.sh' 
SVR4 Bourne shell (SunOS 5 variant)

AIX 6.1

~> sh -c './whatshell.sh'
ksh88 Version (..-)11/16/88f
~> bash -c './whatshell.sh'
bash 4.2.0(1)-release

Ini juga jawaban untuk pertanyaan versi shell Bourne yang ditandai sebagai di luar topik.


Cukup gunakan perintah

gema $BASH_VERSION

Itu harus memberi Anda versi shell. BASH_VERSION adalah variabel lingkungan yang berisi versi shell.


Itu tergantung pada apakah Anda ingin mengetahui versi shell login default Anda, atau versi shell yang sedang Anda jalankan. Mereka belum tentu sama.

Untuk shell login default Anda, seperti jawaban yang diterima, $SHELL --version kemungkinan untuk bekerja. Sebagian besar (tetapi tidak semua) shell menerima --version pilihan. (dash tidak.) Dan ini mengasumsikan bahwa nilai $SHELL belum diubah (mungkin ada alasan yang sah untuk melakukannya).

Untuk shell yang sedang Anda jalankan, jika kebetulan bash Anda dapat mengetik:

echo $BASH_VERSION

Untuk tcsh :

echo $version

Untuk zsh :

echo $ZSH_VERSION
echo $ZSH_PATCHLEVEL # shows more detailed information

Untuk ksh :

echo $KSH_VERSION

Untuk fish :

echo $version

Sekali lagi, ini mengasumsikan bahwa variabel yang relevan belum dimodifikasi (jarang ada alasan tidak berbahaya untuk mengubahnya).

Bash khususnya memiliki variabel array $BASH_VERSINFO yang memberikan lebih banyak informasi dalam bentuk yang lebih mudah diproses secara terprogram. Mencetak $BASH_VERSINFO hanya mencetak elemen pertama; untuk mencetak semua elemen:

echo "${BASH_VERSINFO[@]}"

Ini akan melakukannya:

$SHELL --version

Dalam kasus saya, hasilnya adalah:

zsh 5.0.2 (x86_64-pc-linux-gnu)

Linux
  1. Cara Menemukan Shell Yang Anda Gunakan di Linux

  2. Bagaimana cara mematikan proses di Linux menggunakan perintah?

  3. Cara mencari file menggunakan regex di skrip shell linux

  1. Menggunakan perintah cp di shell linux, bagaimana cara menyalin seluruh direktori ke direktori lain?

  2. Bagaimana cara mengetahui versi Linux yang saya gunakan?

  3. Cara mengecek OS dan versi menggunakan perintah Linux

  1. Cara Menemukan Koneksi SSH Aktif di Linux

  2. Cara Menemukan Versi Paket Di Linux

  3. openSUSE Versi OS Linux - Bagaimana cara menemukannya?