2012-12-14 69 views
1

我正在爲此網絡項目工作,我需要創建許多shell腳本,以便一次從多個節點向多個節點運行諸如「tc」,「arp」和「ping」之類的工具。我需要爲許多節點生成幾個這樣的腳本。所以我需要爲每個場景和配置創建許多腳本,每個腳本與其他腳本略有不同。另外,我的工作還涉及Mininet。我需要創建python腳本以在那裏生成許多自定義拓撲。硬編碼如此多的長腳本是一種痛苦。用於生成其他腳本的腳本

所以我想知道什麼是自動創建這些腳本的最佳方式?是否有可能使用另一個shell腳本生成這些shell/python腳本?或者我應該使用Java生成這些?哪種方法最簡單?只是想在你開始工作之前提出你的意見。謝謝:)

+0

這當然是可能的,腳本只不過是普通的文本文件的更多:他們當用戶關閉Excel和退出程序都自動刪除。你有沒有嘗試生成一個呢? –

+0

這個問題有點模糊,可能是「不建設性」的;當然,如果不知道腳本要做什麼,它們如何改變,何時需要改變等,則無法告訴「最佳方式」。 –

回答

1

下面是一個創建用於設置在Excel中的超鏈接腳本Python函數:

與嘗試。新腳本在特定頁面打開特定PDF。該函數所屬的較大程序每次運行會生成數十個(有時甚至是數百個)這些腳本,除了傳遞給此函數的參數之外,所有這些腳本都是相同的。

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

當然,這是可能的,這裏有一個小例子,有腳本:

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 

它會將以下內容寫入同一個目錄中的文件hello.sh

#!/bin/bash 

ls 
echo "Hello World!" 

列出當前工作目錄中的文件,然後打印「Hello World!」在退出之前。

$ ./hello.sh 
+0

非常有用和有用的信息。謝謝! – user1449265