Saya mencoba menulis skrip yang akan menentukan tindakan berdasarkan arsitektur mesin. Saya sudah menggunakan uname -muntuk mengumpulkan garis arsitektur, namun saya tidak tahu berapa banyak arsitektur ARM ada, aku juga tidak tahu apakah seseorang armhf, armelatau arm64.
Karena ini diperlukan untuk skrip ini untuk menentukan apakah bagian skrip dapat dijalankan atau tidak, saya mencoba menemukan cara sederhana untuk menentukan apakah arsitekturnya adalah armhf, armelatau arm64. Apakah ada satu-kapal atau perintah sederhana yang dapat digunakan untuk output baik armhf, armelatau arm64?
Script ini secara khusus ditulis untuk sistem Debian dan Ubuntu, dan saya menandai hal ini dengan mengingat hal ini (berhenti secara otomatis jika Anda tidak berada di salah satu distro itu, tetapi ini dapat diterapkan dengan cara yang jauh lebih luas juga jika perintah ada)
EDIT: Baru-baru ini mengetahui bahwa armel sudah mati, dan pembuat perangkat lunak arm64 (berbasis PPA atau virtual) bukan yang paling stabil. Jadi saya memiliki pencarian pencarian wildcard arm*dan asumsi armhf, tetapi masih perlu untuk mencari tahu satu liner yang mengembalikan salah satu dari tiga - apakah itu perintah Ubuntu / Debian atau panggilan kernel atau sesuatu.
i386, i686, dan x86_64kasus berdasarkan uname -m, tapi tidak untuk arm??... atau setidaknya, tidak ada yang mengidentifikasi armhf, armelatau arm64) .
uname -mkeluarkan papan lengan khusus - armv7lmisalnya. Ini tidak secara eksplisit mengatakan apakah itu armel, armhfatau arm64- yang adalah apa yang saya butuhkan $(arch)untuk berakhir sebagai untuk menyingkirkan arsitektur OS tidak sesuai dengan.
case $(arch) in ; armf)... ;; armel)... ;; arm64)... ;; *) exit ;; esacapakah kamu melihat sesuatu seperti ini?