यदि आप एक साधारण लाइनर की तलाश में हैं, तो यह सबसे विश्वसनीय समाधान है जो मैंने पाया है कि 64 या 32 रिटर्न देता है । यह परवाह नहीं करता है कि आप एआरएम चला रहे हैं या नहीं, और इसे किसी भी सिस्टम पर बैश या श का उपयोग करके काम करना चाहिए ।
खबरदार, यह मान लेंगे कि सिस्टम 32-बिट या 64-बिट है। नीचे मेरी व्याख्या देखें यदि आपको 8- 16 या कुछ-अन्य-बिट आर्किटेक्चर का पता लगाने की आवश्यकता है।
[$ ((0xffffff)) -eq -1] && गूंज 32 || प्रतिध्वनि 64
यहाँ क्या ख़ुशी है?
तर्क बहुत ही सरल है और यह सब उबलता है कि कंप्यूटर कैसे पूर्णांक पर हस्ताक्षर करता है। 32-बिट आर्किटेक्चर में केवल 32 बिट्स होते हैं जो कि हस्ताक्षरित पूर्णांक को संग्रहीत करने के लिए उपयोग कर सकते हैं जबकि 64-बिट आर्किटेक्चर में 64 बिट्स होते हैं! दूसरे शब्दों में, पूर्णांकों के सेट को संग्रहीत किया जा सकता है जो परिमित है। इस सेट का आधा नकारात्मक संख्याओं का प्रतिनिधित्व करता है और आधा सकारात्मक संख्याओं का प्रतिनिधित्व करता है। हस्ताक्षरित पूर्णांक -1 को सबसे बड़ी संख्या के रूप में दर्शाया गया है जो उस वास्तुकला के लिए दी गई संख्या में बिट्स में संग्रहीत किया जा सकता है। 32-बिट सिस्टम पर, -1 को हेक्स मान 0xFFFFFFFF (जो कि 32 बाइनरी बिट्स, सभी 1 के बराबर है) द्वारा दर्शाया जा सकता है। 64-बिट सिस्टम पर, 0xFFFFFFFF का अनुवाद 4,294,967,295, आधार 10 है जबकि 0xFFFFFFFFFFFFFFFF -1 के लिए प्रतिनिधित्व है)। आप देख सकते हैं कि यह आसानी से सिस्टम के लिए स्केल कैसे करेगा जो 8- या 16-बिट के साथ-साथ 0xFF और 0xFFFF पर -1 के बराबर होगा,
uname -m
औरuname -m
?