Saya mencoba menulis skrip yang akan menentukan tindakan berdasarkan arsitektur mesin. Saya sudah menggunakan uname -m
untuk mengumpulkan garis arsitektur, namun saya tidak tahu berapa banyak arsitektur ARM ada, aku juga tidak tahu apakah seseorang armhf
, armel
atau 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
, armel
atau arm64
. Apakah ada satu-kapal atau perintah sederhana yang dapat digunakan untuk output baik armhf
, armel
atau 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_64
kasus berdasarkan uname -m
, tapi tidak untuk arm??
... atau setidaknya, tidak ada yang mengidentifikasi armhf
, armel
atau arm64
) .
uname -m
keluarkan papan lengan khusus - armv7l
misalnya. Ini tidak secara eksplisit mengatakan apakah itu armel
, armhf
atau 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 ;; esac
apakah kamu melihat sesuatu seperti ini?