2010-08-06 3 views
13

자바 스크립트에서 독립 실행 형 인터프리터 (SpiderMonkey, JavaScript 쉘과 비슷한 기능)를 사용하는 linux 명령을 실행할 수있는 방법이 있습니까?리눅스 용 자바 스크립트 인터프리터

+0

왜 bash로 작성하지 않습니까? – oneat

+0

네, 그 첫 번째 옵션이지만, 누군가가 나에게 자바 스크립트를 사용하도록 제안했기 때문에 그것이 가능한지 궁금합니다. :) – Madalina

답변

0

Rhino은 명령 줄에서 호출 할 수있는 Java로 작성된 JavaScript 인터프리터를 제공합니다. 브라우저 에뮬레이터가 필요하면 Envjs을 사용해보십시오. 당신을

Rhino는 명령을 실행할 수 없습니다하지만 당신은 자바 스크립트 인터프리터 언어이기 때문에 당신이 ProcessBuilder

[편집]을 사용하여 새 프로세스를 생성 할 수있는 몇 가지 자바 코드를 호출하는 새로운 함수를 정의 org.mozilla.javascript.ScriptableObject.defineFunctionProperties()을 사용할 수 있습니다 통역이 필요합니다. 통역사를 운영하려면 다른 언어가 필요합니다. 리눅스는 하나의 쉘 스크립트가 내장 된 것과 같이 제공되지 않는다.

스크립팅이 필요하면 Bash 또는 (더 복잡한 스크립트 인 경우) Python을 사용하십시오.

+0

브라우저 에뮬레이터가 필요하지 않습니다. 내가하고 싶은 것은 일부 리눅스 명령을 실행하는 자바 스크립트 파일 (인터프리터 사용)을 실행하는 것이다. 이것을 할 수 있습니까? 또한 자바 스크립트 파일을 리눅스 시스템에 설치해야하기 때문에 Java에 의존하지 않기를 원합니다. 제 질문이 명확한지는 모르겠지만 자바 스크립트를 사용하여이 방법을 제안했습니다. – Madalina

+0

JavaScript는 해석 된 언어이므로 통역사가 필요합니다. 통역사를 운영하려면 다른 언어가 필요합니다. –

+1

* "통역사를 운영하려면 다른 언어가 필요합니다."* 아니요, 다른 언어 *가 필요하지 않습니다. JavaScript 엔진 만 있으면됩니다. 예를 들어 V8 (Google의 자바 스크립트 엔진)은 컴파일 된 실행 파일입니다. 다른 언어 런타임 (Python, JVM, perl 등)이 필요하지 않습니다. –

2

system() 호출을 사용하여 일부 Linux 명령을 실행할 수있는 C/C++ 함수를 호출하는 JS 함수를 정의 할 수 있습니다.

그래서 당신이

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

혹은

있을 것입니다 : https://developer.mozilla.org/en/JavaScript_C_Engine_Embedder 's_Guide # Native_functions

  • 구글 V8은 옵션입니다

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

    예, 시스템 ('rpm -i myapp.rpm')과 같은 것을 실행해야하지만 Javascript에서 직접 실행해야합니다. 왜냐하면 C++이나 Java와 같은 다른 언어에 의존 할 수 없기 때문입니다. – Madalina

    6

    NodeJS를 사용할 수 있습니다. 그것은 임의의 명령을 실행할 수있는 child_process 모듈을 가지고 있습니다. E.G. 스크립트가 완료

    child_process.spawn() 당신은 다음과 같이 실행 :

    node myscript.js 
    
    8

    jslibs은 Linux32/64 및 Windows에서 실행되는 독립형 자바 스크립트 인터프리터입니다.
    jslibs에서 제공하는 라이브러리를 통해 쉽게 linux 명령을 실행할 수 있습니다.

    관련 문제