Jadi saya mencoba membuat bash / executable, dan saya perlu tahu nomor versi Ubuntu di sistem. Semua cara yang saya temukan online terdiri dari lsb_release -r
, namun saya tidak dapat menampilkan ini ke dalam variabel.
Apakah ada cara untuk mendapatkan versi Ubuntu saat ini dan menyimpan sebagai variabel dalam shell yang dapat dieksekusi?
command-line
bash
scripts
a.mosallaei
sumber
sumber
Jawaban:
Sebaiknya lakukan triknya.
Untuk bagian numerik hanya tambahkan ini:
File
lsb-release
variabel/usr/bin/lsb_release
adalah skrip Python. Ini adalah skrip pendek yang berfungsi sebagai pengantar yang bagus untuk bahasa python. Seperti yang disebutkan lainnya, cara yang lebih pendek untuk mendapatkan nomor versi hanya denganlsb_release -sr
.The
/etc/lsb-release
File mendefinisikan variabel lingkungan dengan informasi yang sama yang diberikan olehlsb_release -a
perintah:Anda dapat memasukkan variabel lingkungan ini kapan saja menggunakan
. /etc/lsb-release
. Untuk menguji di terminal Anda:sumber
Release: 18.04
. Namun apakah ada cara untuk mendapatkan nomornya? Saya ingin dapat menggunakan variabel ini dalam fungsi if / else dalam skrip. Tujuan if / else adalah untuk mengunduh versi aplikasi saya yang benar untuk distro ubuntu.Alternatifnya adalah menggunakan
/etc/os-release
file sebagai gantinya. Ini diformat sebagai daftar variabel shell:Jadi cara termudah untuk menguraikannya adalah dengan cukup
source
dengan file:Untuk menghindari pengaturan semua variabel ini secara tidak perlu, Anda dapat sumber file dalam subkulit , gema variabel yang Anda butuhkan dan keluar dari subkulit:
Atau, Anda dapat selalu mem-parsing file secara langsung:
sumber
The
lsb_release
perintah mendukung-s
(atau--short
) pilihan untuk mencetak hanya informasi yang Anda minta dan tidak header yang mengatakan apa jenis informasi yang.Untuk mendapatkan nomor versi saja sudah cukup untuk dijalankan:
Sebagai contoh, pada Ubuntu 18.04 LTS, itu menghasilkan:
Seperti metode dalam jawaban WinEunuuchs2Unix , masih masuk akal untuk menggunakan substitusi perintah untuk menetapkan output ini ke variabel shell. Andaikan Anda menginginkan
ver
variabel untuk menyimpan nomor rilis:Dengan
-s
, tidak perlu untuk mengurai nomor dengancut
,sed
,grep
,awk
, bentuk-bentuk yang lebih kompleks dari ekspansi parameter , atau sejenisnya.Dalam penggunaan ini,
"
"
tanda kutip bersifat opsional, tetapi saya umumnya menyarankan untuk mengutip ekspansi parameter dan ekspansi shell lainnya kecuali jika ada alasan untuk tidak melakukannya.sumber
lsb_release
Perintah pendek dan sederhana .Untuk mencetak versi saja
Keluaran:
Untuk mencetak keterangan
Keluaran:
Tentang bendera yang digunakan di sini:
sumber