1

我正在研究这个网络项目,我需要为此创建许多 shell 脚本来一次从多个节点到多个节点运行“tc”、“arp”和“ping”等工具。我需要为许多节点生成几个这样的脚本。所以我需要为每个场景和配置创建许多脚本,每个脚本都略有不同。此外,我的工作还涉及 Mininet。我需要创建 python 脚本来在那里生成许多自定义拓扑。硬编码这么多长脚本很痛苦。

所以我想知道自动创建这些脚本的最佳方法是什么?是否可以使用另一个 shell 脚本生成这些 shell/python 脚本?或者我应该使用 Java 生成这些?哪种方法最简单?在我开始工作之前只是想听听你的意见。谢谢 :)

4

2 回答 2

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
于 2012-12-14T17:53:56.610 回答
1

这是一个 python 函数,它创建一个用于在 Excel 中设置超链接的脚本。新脚本在特定页面打开特定 pdf。该函数所属的较大程序每次运行会生成数十个甚至数百个这样的脚本,除了传递给该函数的 args 之外,所有这些脚本都是相同的。当用户关闭 Excel 并退出程序时,它们都会自动删除:

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

麦克风

于 2012-12-14T18:14:33.160 回答