मैं एक स्क्रिप्ट लिखने की कोशिश कर रहा हूं जो मशीन की वास्तुकला के आधार पर क्रियाओं का निर्धारण करेगा। मैं पहले से ही उपयोग करें uname -m
लेकिन मैं देखते हैं कि कितने एआरएम आर्किटेक्चर पता नहीं है, वास्तुकला लाइन इकट्ठा करने के लिए, और न ही मैं जानता हूँ कि एक है कि क्या करना armhf
, armel
या arm64
।
जैसा कि इस स्क्रिप्ट के लिए यह निर्धारित करना आवश्यक है कि स्क्रिप्ट के कुछ हिस्सों को चलाया जा सकता है या नहीं, मैं यह निर्धारित करने के लिए एक सरल तरीका खोजने की कोशिश कर रहा हूं कि क्या वास्तुकला है armhf
, armel
या arm64
। वहाँ किसी भी एक लाइनर या साधारण आदेश है कि उत्पादन या तो किया जा सकता है है armhf
, armel
या arm64
?
स्क्रिप्ट विशेष रूप से डेबियन और उबंटू सिस्टम के लिए लिखी गई है, और मैं इसे इस तरह से ध्यान में रखकर टैग कर रहा हूं (यह स्वचालित रूप से क्विट करता है यदि आप उन डिस्ट्रो में से एक पर नहीं हैं, लेकिन इसे बहुत व्यापक तरीके से लागू किया जा सकता है कमांड (s) मौजूद है
संपादित करें: हाल ही में पता चला है कि आर्मल मर चुका है, और आर्म 64 सॉफ्टवेयर बिल्डर्स (पीपीए या वर्चुअल आधारित) सबसे स्थिर नहीं हैं। तो मेरे पास एक वाइल्डकार्ड खोज है arm*
और इसे संभालने वाला है, लेकिन अभी भी एक लाइनर का पता लगाना आवश्यक है जो तीनों में से एक को लौटाता है - चाहे वह उबंटू / डेबियन कमांड हो या कर्नेल कॉल या कुछ और।
i386
, i686
और x86_64
के आधार पर मामलों uname -m
, लेकिन कुछ भी नहीं arm??
... या कम से कम, कुछ भी नहीं है कि पहचान करता है armhf
, armel
या arm64
) ।
uname -m
, विशिष्ट हाथ बोर्ड से बाहर निकलता है armv7l
। यह स्पष्ट रूप से नहीं कहा गया है कि क्या यह है armel
, armhf
या arm64
- जो मुझे $(arch)
असंगत ओएस वास्तुकारों के साथ खरपतवार के रूप में समाप्त करने की आवश्यकता है।
case $(arch) in ; armf)... ;; armel)... ;; arm64)... ;; *) exit ;; esac
क्या आप इस तरह से कुछ करते हैं?