2010-08-06 8 views
13

के लिए जावास्क्रिप्ट दुभाषिया जावास्क्रिप्ट से लिनक्स कमांड चलाने का कोई तरीका है जो स्टैंडअलोन दुभाषिया (स्पाइडरमोन्की, जावास्क्रिप्ट शैल के समान कुछ) का उपयोग करता है?लिनक्स

+0

आप इसे बैश में क्यों नहीं लिखते? – oneat

+0

हां, यह पहला विकल्प था, लेकिन किसी ने मुझे जावास्क्रिप्ट का उपयोग करने का सुझाव दिया, इसलिए मैं सोच रहा हूं कि यह संभव है या नहीं। :) – Madalina

उत्तर

0

Rhino जावा में लिखे गए जावास्क्रिप्ट दुभाषिया की पेशकश करता है जिसे कमांड लाइन से बुलाया जा सकता है। यदि आपको ब्राउज़र एमुलेटर की आवश्यकता है, तो Envjs आज़माएं।

राइनो आदेश पर अमल नहीं कर सकते, लेकिन आप org.mozilla.javascript.ScriptableObject.defineFunctionProperties() उपयोग कर सकते हैं एक नया कार्य जो कुछ जावा कोड है जिसमें आप एक नई प्रक्रिया का उपयोग कर ProcessBuilder

[संपादित करें] बना सकते हैं के बाद से जावास्क्रिप्ट एक व्याख्या की भाषा है कहता है परिभाषित करने के लिए, आप एक दुभाषिया की जरूरत है। दुभाषिया चलाने के लिए, आपको किसी अन्य भाषा की आवश्यकता है। लिनक्स एक अंतर्निर्मित के साथ नहीं आता है (जैसे कि शैल स्क्रिप्ट या इसी तरह के लिए)।

यदि आपको स्क्रिप्टिंग की आवश्यकता है, तो Bash या (अधिक जटिल स्क्रिप्ट के लिए) Python का उपयोग करें।

+0

मुझे ब्राउज़र एमुलेटर की आवश्यकता नहीं है। मैं बस इतना करना चाहता हूं कि जावास्क्रिप्ट फ़ाइल (एक व्याख्याकर्ता का उपयोग करके) चलाएं जो कुछ लिनक्स कमांड चलाती है। क्या इसे करना संभव है? और मैं जावा पर निर्भर नहीं करना चाहूंगा, क्योंकि मेरी जावास्क्रिप्ट फ़ाइल को मेरे लिनक्स मशीन पर कुछ इंस्टॉलेशन करना चाहिए। मुझे नहीं पता कि मेरे प्रश्न स्पष्ट हैं, लेकिन मुझे ऐसा करने के लिए जावास्क्रिप्ट का उपयोग करने का सुझाव दिया गया था, और मैं वास्तव में नहीं जानता कि कैसे। – Madalina

+0

चूंकि जावास्क्रिप्ट एक व्याख्या की गई भाषा है, इसलिए आपको एक दुभाषिया की आवश्यकता है। दुभाषिया चलाने के लिए, आपको किसी अन्य भाषा की आवश्यकता है। –

+1

* "दुभाषिया चलाने के लिए, आपको किसी अन्य भाषा की आवश्यकता है।" * नहीं, आपको किसी अन्य * भाषा * की आवश्यकता नहीं है। आपको बस एक जावास्क्रिप्ट इंजन चाहिए। उदाहरण के लिए, वी 8 (Google का जावास्क्रिप्ट इंजन) एक संकलित निष्पादन योग्य है। इसे चलाने के लिए आपको किसी अन्य भाषा रनटाइम (पायथन, जेवीएम, पर्ल, जो कुछ भी) की आवश्यकता नहीं है। –

2

जेएस फ़ंक्शंस को परिभाषित करना संभव है जो आपके सी/सी ++ फ़ंक्शन को कॉल करेंगे जो system() कॉल का उपयोग कर सकते हैं, कुछ लिनक्स कमांड निष्पादित करते हैं।

तो तुम

system('rpm -i myapp.rpm'); 
system('rpm -i myapp2.rpm'); 

या शायद

होगा: https://developer.mozilla.org/en/JavaScript_C_Engine_Embedder 's_Guide # Native_functions

  • गूगल वी 8 भी एक विकल्प है

    install('myapp.rpm'); 
    install('myapp2.rpm'); 
    
  • +0

    हां, मुझे सिस्टम ('rpm -i myapp.rpm') जैसे कुछ चलाने की ज़रूरत है, लेकिन सीधे जावास्क्रिप्ट से, क्योंकि मैं अन्य भाषाओं, जैसे सी ++ या जावा पर निर्भर नहीं हो सकता। – Madalina

    6

    आप नोडजेएस का उपयोग कर सकते हैं। इसमें एक child_process मॉड्यूल है जो मनमाने ढंग से कमांड चला सकता है। E.G. child_process.spawn()

    जब अपनी स्क्रिप्ट समाप्त हो गया है आप इसे इस तरह चलाएँ:

    node myscript.js 
    
    8

    jslibs एक एकांतवासी जावास्क्रिप्ट दुभाषिया कि Linux32/64 और Windows पर चलाता है।
    आप आसानी से jslibs द्वारा प्रदान की गई पुस्तकालयों के माध्यम से लिनक्स आदेश चला सकते हैं।