ठीक है मुझे लूआ स्क्रिप्ट से सिस्टम के ओएस को निर्धारित करने की आवश्यकता है, लेकिन लुआ इस तरह के लिए कोई एपीआई नहीं है, इसलिए मैं os.getenv() और क्वेरी पर्यावरण चर का उपयोग करता हूं। विंडोज़ पर एनवायरमेंटल वैरिएबल "ओएस" की जांच करने से मुझे सिस्टम के ओएस का नाम मिलता है, लेकिन क्या कुछ वैरिएबल है जो विंडोज़ और यूनिक्स के अधिकांश स्वादों पर मौजूद है जिन्हें चेक किया जा सकता है?मैं लुआ लिपि के भीतर से सिस्टम के ओएस को कैसे निर्धारित कर सकता हूं?
उत्तर
एक यूनिक्स प्रणाली पर, कोशिश os.capture 'uname' जहां os.capture नीचे परिभाषित किया गया है:
function os.capture(cmd, raw) local f = assert(io.popen(cmd, 'r')) local s = assert(f:read('*a')) f:close() if raw then return s end s = string.gsub(s, '^%s+', '') s = string.gsub(s, '%s+$', '') s = string.gsub(s, '[\n\r]+', ' ') return s end
यह यूनिक्स की और मैक OSX पर सभी जायके पर मदद मिलेगी। यदि यह विफल रहता है, तो आप Windows सिस्टम पर हो सकते हैं? या os.getenv 'होम' की जांच करें।
Unixes $ HOME चर (जबकि Windows कि नहीं है) होना चाहिए, ताकि आप इसे जांच कर सकते हैं (जाँच ओएस चर रिक्त है के बाद)।
मुझे लगता है कि अगर आप सिर्फ विंडोज/यूनिक्स का पता लगाने की जरूरत है, तो आप/आदि या/बिन या/बूट निर्देशिका के अस्तित्व के लिए फाइल सिस्टम की जांच कर सकता लगता है। आमतौर पर, यदि आपको यह पता होना चाहिए कि कौन सा डिस्ट्रो है, तो अधिकांश लिनक्स डिस्ट्रोज़ में थोड़ी सी फाइलें होती हैं जो कि डिस्ट्रो और संस्करण दिखाती हैं, दुख की बात है कि वे सभी इसे अलग-अलग नाम देते हैं।
जीएनयू/लिनक्स और फिनली 'सी:/विंडोज' और' सी:/WINNT' के लिए मैक ओएस के लिए '/ एप्लीकेशन' जैसे '/ एप्लीकेशन' जैसे मैक ओएस के लिए फ़ोल्डरों का पता लगाना, मेरे लिए एक अच्छा समाधान है। –
आप package.config:sub(1,1)
कोशिश कर सकते हैं। यह पथ विभाजक है, जो विंडोज पर '\\'
और '/'
Unixes पर है ...
यह एक सरल और चालाक जवाब – tcpiper
सिर्फ इस बैकअप लेने के लिए है: [लुआ 5.3 संदर्भ] (http://www.lua.org/manual/5.3/manual.html#pdf-package.config) –
जब lua संकलित किया गया है, यह थोड़ा अलग ढंग से कॉन्फ़िगर किया गया है क्या ऑपरेटिंग सिस्टम इसके लिए संकलित किया गया है के आधार पर देता है।
श्रृंखलाएं जिनमें 'पैकेज' मॉड्यूल में स्थापित कर रहे हैं में से कई लोग इस प्रकार भेद करने के लिए जो प्रणाली इसके लिए संकलित किया गया था इस्तेमाल किया जा सकता।
उदाहरण के लिए, lua भार सी-आधारित जब मॉड्यूल जो गतिशील पुस्तकालयों के रूप में वितरित कर रहे हैं, यह उन पुस्तकालयों के लिए इस्तेमाल किया विस्तार है, जो प्रत्येक ओएस पर अलग है पता करने के लिए है।
इस प्रकार, आप ओएस निर्धारित करने के लिए निम्न जैसे फ़ंक्शन का उपयोग कर सकते हैं।
local BinaryFormat = package.cpath:match("%p[\\|/]?%p(%a+)")
if BinaryFormat == "dll" then
function os.name()
return "Windows"
end
elseif BinaryFormat == "so" then
function os.name()
return "Linux"
end
elseif BinaryFormat == "dylib" then
function os.name()
return "MacOS"
end
end
BinaryFormat = nil
मैं माफी चाहता हूँ इस तरह से पोस्ट करने के लिए, मुझे अतिप्रवाह ढेर करने के लिए उपयोग नहीं किया जाता है। –
सभी मामलों में काफी विश्वसनीय नहीं है। मेरे पास एक सी प्रोग्राम है जो लुआ दुभाषिया को एम्बेड करता है और लुआ कोड ओएसएक्स पर बाइनरीफॉर्मैट के रूप में लिनक्स लौट रहा है। – Matt
मेरे पास ओएसएक्स पर एक ही समस्या है –
- 1. मैं प्रोग्रामिंग के चल रहे मैक ओएस एक्स संस्करण को कैसे निर्धारित कर सकता हूं?
- 2. मैं डिवाइस के कोण को कैसे निर्धारित कर सकता हूं?
- 3. मैं जावा एप्लिकेशन के भीतर से JVM न्यूनतम ढेर आकार कैसे निर्धारित कर सकता हूं?
- 4. लुआ लिपि को कैसे समाप्त करें?
- 5. मैं लुआ के अंदर से एक और स्क्रिप्ट कैसे चला सकता हूं?
- 6. मैं पायथन में सिस्टम जानकारी कैसे वापस कर सकता हूं?
- 7. मैं Emacs के भीतर से निर्देशिका कैसे बना सकता हूं?
- 8. लुआ लिपि के स्मृति उपयोग को सीमित करना?
- 9. मैं एक पायथन लिपि को कैसे हटा सकता हूं?
- 10. मैं जावा के माध्यम से सिस्टम/हार्डवेयर जानकारी कैसे प्राप्त कर सकता हूं?
- 11. मैं जावा में लुआ कैसे एम्बेड कर सकता हूं?
- 12. मैं सिस्टम डिवाइस को कैसे अक्षम कर सकता हूं?
- 13. मैं सिस्टम को कैसे प्राप्त कर सकता हूं। Windows.Controls.Primitive.PopupRoot?
- 14. मैं पर्ल से स्थानीय मशीन के आईपी पते कैसे निर्धारित कर सकता हूं?
- 15. मैं पाइथन लिपि के माध्यम से सर्वर (एसएसएच) कनेक्शन कैसे सुन सकता हूं और रिपोर्ट कर सकता हूं?
- 16. मैं HTML पृष्ठ के भीतर HTML टेम्पलेट को सही ढंग से कैसे संग्रहीत कर सकता हूं?
- 17. मैं ब्राउज़र पेज को सिल्वरलाइट ऐप के भीतर से रीफ्रेश कैसे कर सकता हूं?
- 18. मैं कम से कम कक्षा के भीतर एक तत्व को कैसे लक्षित कर सकता हूं?
- 19. मैं विंडोज के वर्तमान डिफ़ॉल्ट कोडपेज को प्रोग्रामेटिक रूप से कैसे निर्धारित कर सकता हूं?
- 20. मैं लुआ स्क्रिप्ट को अपरिवर्तनीय कैसे बना सकता हूं?
- 21. मैं रूबी को लुआ में कैसे बदल सकता हूं?
- 22. मैं वीबी 6 ऐप से विंडोज संस्करण कैसे निर्धारित कर सकता हूं?
- 23. जावास्क्रिप्ट का उपयोग कर फ़्रेमसेट फ्रेम के भीतर से मैं तत्व कैसे प्राप्त कर सकता हूं?
- 24. मैं हेरोोकू पर 'साप्ताहिक' नौकरी कैसे निर्धारित कर सकता हूं?
- 25. मैं कैसे निर्धारित कर सकता हूं कि ऑपरेटिंग सिस्टम सी में POSIX है या नहीं?
- 26. मैं ब्लॉक के भीतर ओबीजेसी विधि के पैरामीटर को कैसे संशोधित कर सकता हूं?
- 27. मैं केवल जावास्क्रिप्ट का उपयोग कर दस्तावेज़ के माइम-प्रकार को कैसे निर्धारित कर सकता हूं?
- 28. लुआ/लुआफाइल सिस्टम
- 29. जावा - मैं कोड के साथ चल रहे मैक ओएस एक्स संस्करण को कैसे निर्धारित कर सकता हूं?
- 30. मैं कैसे निर्धारित कर सकता हूं कि सी/सी ++ कंपाइलर का उपयोग करने के लिए?
विंडोज़ = HOME = साथ ही –
मैंने देखा है कि प्रत्येक विंडोज संस्करण पर, कोई घर पर्यावरण चर नहीं है। कमांड प्रॉम्प्ट से "echo% HOME%" करने का प्रयास करें। –
विंडोज 7 (वी 6.1, बिल्ड 7601) में होम है, आपने किस ओएस संस्करण की जांच की? –