Tôi đang cố gắng viết một kịch bản sẽ xác định các hành động dựa trên kiến trúc của máy. Tôi đã sử dụng uname -m
để thu thập các dòng kiến trúc, tuy nhiên tôi không biết có bao nhiêu kiến trúc ARM có, cũng không biết liệu một là armhf
, armel
hoặc arm64
.
Vì đây là cần thiết cho kịch bản này để xác định xem các phần của kịch bản có thể được chạy hay không, tôi đang cố gắng tìm một cách đơn giản để xác định xem các kiến trúc là armhf
, armel
hoặc arm64
. Có một lót hoặc lệnh đơn giản có thể được sử dụng để sản xuất một trong hai armhf
, armel
hoặc arm64
?
Kịch bản được viết riêng cho các hệ thống Debian và Ubuntu và tôi đang gắn thẻ như vậy với ý nghĩ này (nó sẽ tự động thoát nếu bạn không sử dụng một trong những bản phát hành đó, nhưng điều này cũng có thể được áp dụng theo cách rộng hơn nhiều nếu lệnh (s) tồn tại)
EDIT: Gần đây đã biết rằng armel đã chết và các nhà xây dựng phần mềm arm64 (PPA hoặc dựa trên ảo) không ổn định nhất. Vì vậy, tôi có một tìm kiếm ký tự đại diện arm*
và giả sử armhf, nhưng vẫn cần phải tìm ra một lớp lót trả về một trong ba - cho dù đó là lệnh Ubuntu / Debian hay lệnh gọi kernel hay gì đó.
i386
, i686
và x86_64
trường hợp dựa trên uname -m
, nhưng không cho arm??
... hoặc ít nhất, không có gì danh sách chỉ rõ armhf
, armel
hoặc arm64
) .
uname -m
nhổ ra bảng mạch cụ thể - armv7l
ví dụ. Nó không rõ ràng nói cho dù đó là armel
, armhf
hoặc arm64
- đó là những gì tôi cần $(arch)
để kết thúc như là để lọc bỏ kiến trúc hệ điều hành không tương thích với.
case $(arch) in ; armf)... ;; armel)... ;; arm64)... ;; *) exit ;; esac
bạn có thấy cái gì đó như thế này không?