আপনি যদি একটি সহজ এক-লাইনের খুঁজছেন, তাহলে এই সবচেয়ে নির্ভরযোগ্য সমাধান আমি দেখেছি যে, ফেরৎ 64 বা 32 । আপনি এআরএম চালাচ্ছেন কি না তা বিবেচ্য নয় এবং ব্যাশ বা শ ব্যবহার করে এটি কোনও সিস্টেমে কাজ করা উচিত ।
সাবধান, এটি ধরে নিবে সিস্টেমটি হয় 32-বিট বা 64-বিট। আপনার যদি 8- 16- বা কিছু-বিট আর্কিটেকচার সনাক্ত করতে হয় তবে নীচে আমার ব্যাখ্যা দেখুন।
[$ ((0xffffffff)) -Eq -1] && প্রতিধ্বনিত 32 || প্রতিধ্বনি 64
এখানে কি সুখ?
যুক্তিটি খুব সহজ এবং কম্পিউটারগুলি স্বাক্ষরিত পূর্ণসংখ্যাগুলি কীভাবে সঞ্চয় করে তা এগুলি সমস্ত ফোটায়। একটি 32-বিট আর্কিটেকচারে 32 টি বিট রয়েছে যা এটি স্বাক্ষরিত পূর্ণসংখ্যাগুলি সংরক্ষণ করার জন্য ব্যবহার করতে পারে যখন একটি 64-বিট আর্কিটেকচারে 64 বিট রয়েছে! অন্য কথায় সংরক্ষণ করা যেতে পারে যে পূর্ণসংখ্যার সেট সীমাবদ্ধ। এই সেটটির অর্ধেকটি নেতিবাচক সংখ্যা এবং অর্ধেকটি ইতিবাচক সংখ্যা উপস্থাপন করে। স্বাক্ষরিত পূর্ণসংখ্যা -1 সমানটি বৃহত্তর সংখ্যা হিসাবে উপস্থাপিত হয় যা সেই স্থাপত্যের জন্য প্রদত্ত সংখ্যক বিটগুলিতে সংরক্ষণ করা যেতে পারে be 32-বিট সিস্টেমে -1 হেক্স মান 0xFFFFFFFF (যা 32 বাইনারি বিট, সমস্ত সমান 1) দ্বারা প্রতিনিধিত্ব করা যেতে পারে। একটি 64-বিট সিস্টেমে 0xFFFFFFFFF 4,294,967,295, বেস 10 এ অনুবাদ করে যখন 0xFFFFFFFFFFFFFFFF -1-এর উপস্থাপনা)। আপনি দেখতে পারেন যে এটি 8- বা 16-বিটের পাশাপাশি 0xFF এবং 0xFFFF এ -1 সমান হবে এমন সিস্টেমগুলির জন্য কীভাবে সহজে স্কেল করতে পারে,
uname -m
এবংuname -m
?