Untuk pengujian untuk sistem Debian, Anda dapat memeriksa apakah /etc/debian_version
ada:
if [ -f "/etc/debian_version" ]; then
# do stuff
fi
Itu harus dimasukkan Debian dan sistem berdasarkan itu (termasuk Ubuntu dan turunannya), meskipun beberapa mungkin tidak memilikinya - dalam hal ini Anda dapat memeriksa /etc/*release
file:
if [ "$(grep -Ei 'debian|buntu|mint' /etc/*release)" ]; then
# do stuff
fi
Di mana debian|buntu|mint
ada daftar nama distribusi yang harus dicari (bukan huruf besar-kecil) - Anda dapat mengetahui beberapa turunan umum dari sini , meskipun turunan debian seperti Ubuntu memiliki deriatifnya sendiri .
Untuk sistem berbasis RedHat, turunannya menggunakan rentang file yang lebih besar, dan mungkin tidak menginstal lsb-release - sehingga Anda dapat menerapkan metode berikut:
dapatkan nama rilisnya
lsb_release -i 2> /dev/null | sed 's/:\t/:/' | cut -d ':' -f 2-
Periksa DISTRIB-ID dalam lsb-release
file - 'metode mundur yang mungkin tidak perlu pada sistem modern', juga file tersebut tampaknya hilang pada Fedora, dan tidak mengandung DISTRIB_ID di OpenSUSE
periksa keberadaan beberapa berikut ini
/etc/fedora-release
dan / atau /etc/redhat-release
untuk RedHat atau Fedora
/etc/SuSE-release
untuk SuSe
/etc/mandriva-release
untuk mandriva / mageia
gunakan metode yang mirip dengan debian yang terakhir:
if [ "$(grep -Ei 'fedora|redhat' /etc/*release)" ]; then
...
3 poin pertama yang saya dapatkan dari cron pembaruan Google Chrome, jadi Anda bisa memeriksanya untuk mengetahui lebih lanjut (itu juga menentukan manajer paket)
Untuk rentang OS yang lebih luas, membaca posting ini di SO akan membantu.
lsb_release -i 2> /dev/null | sed 's/:\t/:/' | cut -d ':' -f 2-
?? Jalankan sajalsb_release -si