2012-12-14 4 views
1

"tc", "arp"및 "ping"같은 도구를 여러 노드에서 한 번에 여러 노드로 실행하려면이 셸 스크립트를 만들어야하는이 네트워킹 프로젝트를 진행하고 있습니다. 많은 노드에 대해 이러한 스크립트를 여러 개 생성해야합니다. 따라서 각 시나리오와 구성에 대해 많은 스크립트를 작성해야합니다. 각 시나리오는 다른 시나리오와 약간 다릅니다. 또한, 저의 작품은 Mininet에 대해서도 다루고 있습니다. 많은 사용자 정의 토폴로지를 생성하기 위해 파이썬 스크립트를 작성해야합니다. 많은 긴 스크립트를 하드 코딩하는 것은 고통입니다.다른 스크립트를 생성하는 스크립트

그래서이 스크립트의 생성을 자동화하는 가장 좋은 방법은 무엇인지 알고 싶습니까? 다른 쉘 스크립트를 사용하여 이러한 쉘/파이썬 스크립트를 생성 할 수 있습니까? 자바를 사용하여 생성해야합니까? 가장 쉬운 방법은 무엇입니까? 일하기 전에 당신의 의견을 듣고 싶습니다.

create_a_script.sh : 다음과 같이 터미널에서 실행할 수 있습니다

#!/bin/bash 

echo -e \ 
'#!/bin/bash 

ls 
echo "Hello World!"' > hello.sh 

chmod +x hello.sh 

:

$ chmod +x create_a_script.sh 
$ ./create_a_script.sh 

감사합니다 :)

+0

, 스크립트는 일반 텍스트 파일보다 더 아무것도 : 사용자가 Excel을 닫고 프로그램을 종료 할 때 그들은 모두 자동으로 삭제됩니다. 아직 생성하지 않으셨습니까? –

+0

질문은 다소 모호하며 "건설적이지 않을 수 있습니다"; 스크립트가 할 일, 변화하는 방법, 변경해야 할 때 등에 대해 더 많이 알지 못하면 "최선의 방법"을 말할 수있는 방법이 없습니다. –

답변

1

여기 Excel에서 하이퍼 링크로 설정하는 데 사용되는 스크립트를 생성하는 파이썬 함수의 :

은 그것을보십시오. 새 스크립트는 특정 페이지에서 특정 pdf 파일을 엽니 다. 이 함수가 속한 더 큰 프로그램은 수십 개, 때로는 수백 개에 이르는이 스크립트를 실행마다 생성합니다.이 모든 함수는이 함수에 전달 된 args를 제외하고는 동일합니다.

def makeOpener(pdf, page): 
    '''makes a pyw file to use to hyperlink in excel''' 
    t = 'c:/temp' 
    if not os.path.isdir(t): 
     os.makedirs(t) 
    tempfile.tempdir = t 
    py = tempfile.NamedTemporaryFile(suffix='.pyw', delete=False) 

    lst = ['import subprocess, win32api', 
      'pdf = r"' + pdf + '"', 
      'page = "' + str(int(page)) + '"', 
      '_, exe = win32api.FindExecutable(pdf)', 
      'opts = "page=" + page', 
      'clst = [exe, "/A", opts, "/N", pdf]', 
      'DP = 0x00000008', 
      'subprocess.Popen(clst, shell=False, creationflags=DP)' 
      ] 
    py.write('\n'.join(lst))  
    py.close() 
    return py.name 

마이크 그것은 확실히 가능

+0

또 다시, 정말 도움이되는 것들. 대단히 감사합니다 :) – user1449265

+0

답변이 투표를받을 권리가 있습니다! –

1

는 물론 그것은 여기 스크립트 최소한의 예입니다, 가능 그리고 같은 디렉토리에있는 hello.sh 파일에 다음을 쓸 것입니다 :

#!/bin/bash 

ls 
echo "Hello World!" 

현재 작업 디렉토리의 파일을 나열한 다음 "Hello World!" 종료하기 전에.

$ ./hello.sh 
+0

매우 유용하고 유용한 정보입니다. 고맙습니다! – user1449265

관련 문제