ฉันพยายามเขียนสคริปต์ซึ่งจะกำหนดการดำเนินการตามสถาปัตยกรรมของเครื่อง ฉันใช้uname -m
ในการรวบรวมสายสถาปัตยกรรม แต่ผมไม่ทราบว่าหลายสถาปัตยกรรม ARM มีหรือจะทราบได้อย่างไรว่าเป็นหนึ่งarmhf
, หรือarmel
arm64
เช่นนี้เป็นสิ่งจำเป็นสำหรับสคริปต์นี้เพื่อตรวจสอบว่าบางส่วนของสคริปต์ที่สามารถทำงานได้หรือไม่ฉันกำลังพยายามที่จะหาวิธีง่ายๆในการตรวจสอบว่าเป็นสถาปัตยกรรมarmhf
, หรือarmel
arm64
มีผู้ใดหนึ่งซับหรือคำสั่งง่ายๆที่สามารถนำมาใช้เพื่อการส่งออกอย่างใดอย่างหนึ่งarmhf
, armel
หรือarm64
?
สคริปต์นี้เขียนขึ้นโดยเฉพาะสำหรับระบบ Debian และ Ubuntu และฉันกำลังติดแท็กด้วยเช่นนี้ในใจ (มันจะปิดโดยอัตโนมัติหากคุณไม่ได้อยู่ในหนึ่งใน distros เหล่านั้น มีคำสั่งอยู่
แก้ไข: เรียนรู้เมื่อเร็ว ๆ นี้ว่า Armel นั้นตายแล้วและผู้สร้างซอฟต์แวร์ arm64 (PPA หรือ virtual based) นั้นไม่เสถียรที่สุด ดังนั้นฉันมีการค้นหาการค้นหาตัวแทนarm*
และสมมติว่า armhf แต่ก็ยังจำเป็นต้องคิดซับหนึ่งที่ส่งกลับหนึ่งในสาม - ไม่ว่าจะเป็นคำสั่ง Ubuntu / Debian หรือการโทรเคอร์เนลหรืออะไร
i386
, i686
และx86_64
กรณีขึ้นอยู่กับuname -m
แต่ไม่มีอะไรสำหรับarm??
... หรืออย่างน้อยก็ไม่มีอะไรที่ระบุarmhf
, armel
หรือarm64
) .
uname -m
แยกกระดานแขนออก - armv7l
ตัวอย่างเช่น มันไม่ชัดเจนบอกว่าไม่ว่าจะเป็นarmel
, armhf
หรือarm64
- ซึ่งเป็นสิ่งที่ฉันต้องการ$(arch)
ที่จะจบลงเช่นเพื่อวัชพืชออกสถาปัตยกรรม OS เข้ากันกับ
case $(arch) in ; armf)... ;; armel)... ;; arm64)... ;; *) exit ;; esac
คุณหมายถึงอะไรเช่นนี้?