Untuk pengujian untuk sistem Debian, Anda dapat memeriksa apakah /etc/debian_versionada:
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/*releasefile:
if [ "$(grep -Ei 'debian|buntu|mint' /etc/*release)" ]; then
# do stuff
fi
Di mana debian|buntu|mintada 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-releasefile - '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-releasedan / atau /etc/redhat-releaseuntuk 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