Próbuję napisać skrypt, który określi działania w oparciu o architekturę maszyny. Używam już uname -mzebrać linię architektura, jednak nie wiem, jak wiele architektur ARM istnieje, ani nie wiem, czy ktoś jest armhf, armelalbo arm64.
Ponieważ jest to wymagane dla tego skryptu, aby ustalić, czy części skryptu mogą być uruchomione, czy nie, próbuję znaleźć prosty sposób, aby ustalić, czy architektura jest armhf, armellub arm64. Czy istnieje jakiś jeden-liner lub proste polecenia, które mogą być wykorzystane do produkcji albo armhf, armel, lub arm64?
Skrypt został napisany specjalnie dla systemów Debian i Ubuntu, dlatego właśnie w tym celu oznaczam go tagiem (automatycznie się wyłącza, jeśli nie korzystasz z jednej z tych dystrybucji, ale można to również zastosować w dużo szerszy sposób, jeśli komendy istnieją)
EDYCJA: Niedawno dowiedziałem się, że Armel nie żyje, a twórcy oprogramowania arm64 (PPA lub wirtualni) nie są najbardziej stabilni. Mam więc wyszukiwanie wieloznaczne arm*i zakładam, że armhf, ale nadal konieczne jest wymyślenie jednej linijki, która zwraca jedną z trzech - niezależnie od tego, czy jest to polecenie Ubuntu / Debian, czy wywołanie jądra, czy coś takiego.
i386, i686i x86_64przypadki, w oparciu o uname -m, ale nic do arm??... a przynajmniej nic, co identyfikuje armhf, armellub arm64) .
uname -mwypluwa konkretną tablicę ramion - armv7lna przykład. Nie mówi wprost, czy to jest armel, armhfczy arm64- właśnie to muszę $(arch)zakończyć, aby wyeliminować niekompatybilne architektury systemu operacyjnego.
case $(arch) in ; armf)... ;; armel)... ;; arm64)... ;; *) exit ;; esacCzy widzisz coś takiego?