(belajar bash) Saya mencoba memeriksa versi bash jadi saya mengetik /bin/bash -v
.
Itu menghasilkan banyak teks ke layar (isi .bashrc, dan file lain yang bersumber dari itu).
Bisakah saya mengacaukan sesuatu (seperti menimpa beberapa file konfigurasi / pengaturan variabel lingkungan yang salah, dll.) Karena perintah itu?
Saya juga tidak dapat menemukan dokumentasi untuk apa -v
saklar itu.
command-line
bash
Zabba
sumber
sumber
bash -v
Anda memanggil bash shell baru dengan mode verbose diaktifkan, sehingga Anda akan melihat output verbose untuk perintah lebih lanjut (setidaknya Anda akan melihatprintf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"
). Untuk mengakhiri verbositas, ketikkanexit
perintah - Anda akan kembali ke shell bash non-verbose asli (atau shell apa pun yang Anda gunakan).Jawaban:
The
-v
parameter untuk bash singkatan verbose, dan menginstruksikan bash untuk mencetak informasi sebanyak mungkin tentang apa yang dilakukannya. Pada startup, itu akan mencetak semua konfigurasi yang sedang dibacaUntuk mencetak informasi versi untuk bash, gunakan
bash --version
.sumber
echo "$BASH_VERSION"
. Ada juga array khusus (BASH_VERSINFO) yang berisi setiap nomor versi dalam elemen terpisah.if ((BASH_VERSINFO[0] < 4)); then echo "Sorry, you need at least bash-4.0 to run this script." >&2; exit 1; fi
[ "${BASH_VERSINFO}" -lt 4 ]
atau[ "${BASH_VERSINFO[0]}" -lt 4 ]
Saat menjalankan bash (misalnya dari
gnome-terminal
) Anda dapat memeriksa nilaiBASH_VERSION
variabel lingkungan.Jika nilainya kosong, Anda tidak berjalan
bash
.sumber
bash --version
, karena menegaskan bahwa Anda sedang menjalankan bash, bukan hanya bahwa Anda telah menginstal bash di sistem Anda.bash --version
tidak menunjukkan pesta yang sedang Anda gunakan.BASH_VERSION
tidak menjamin bahwa Anda sedang menjalankanbash
:export BASH_VERSION; csh -c 'echo $BASH_VERSION $SHELL $shell'
, sehingga$BASH_VERSION
dapat ditetapkan dalamcsh
juga$SHELL --version
, tetapi sekali lagi SHELL mungkin akan ditimpa (dan semua shell tidak mendukung flag --version).Ada pintasan kunci yang memerintahkan informasi shell saat ini muncul:
Ctrl+ x Ctrl+v
Dari
man bash
Ini adalah pilihan terbaik jika Anda telah mengacaukan variabel lingkungan.
sumber
Tidak, semuanya baik-baik saja. Dari
man bash
:Hanya saja tidak senyap seperti biasanya. Mencoba
sebagai gantinya.
sumber
Biasa
--version
mungkin memberi Anda terlalu banyak multi-line boilerplate jadi apa yang saya gunakan adalahsumber
bash
shell baru . Salah satu cara ini bermanfaat adalah tidak perlu menggunakan shell saat inibash
. Lain adalah bahwa, bahkan dalambash
, dimungkinkan (meskipun tidak baik ) untuk menetapkanBASH_VERSION
nilai yang berbeda. Ia bahkan dapat diekspor sebagai variabel lingkungan. Namun bahkan setelah berjalanexport BASH_VERSION=foobar
, metode yang diberikan di sini berfungsi, karenabash
shell baru me-reset sendiriBASH_VERSION
secara otomatis sebelum melakukan ekspansi parameter yang membacanya.bash --version
mengatakan4.3.48(1)-release
danapt-cache policy bash
berkata4.3-14ubuntu1.2
dan saya telah memeriksa bahwabash
file yang dapat dieksekusi berasal dari paket 'bash'. Bagaimana ini harus ditafsirkan? Ada ketidakcocokan serupa untukusb-creator-gtk
, dan dalam hal itu keluaran apt-cache sudah benar. - Bisakah kita menyimpulkan bahwa nomor versi yang lebih tinggi adalah yang benar (dan seseorang lupa memperbarui yang lain)?4.3.48...
adalah versi Bash,4.3-14...
adalah versibash
paket.Untuk hanya mendapatkan versi dan bukan teks multiline:
sumber