我正在研究这个网络项目,我需要创建许多shell脚本,以便一次从多个节点到多个节点运行“tc”,“arp”和“ping”等工具。我需要为许多节点生成几个这样的脚本。所以我需要为每个场景和配置创建许多脚本,每个脚本与另一个脚本略有不同。此外,我的作品还涉及Mininet。我需要创建python脚本以在那里生成许多自定义拓扑。如此多的长脚本难以编码是一种痛苦。
所以我想知道自动创建这些脚本的最佳方法是什么?是否可以使用另一个shell脚本生成这些shell / python脚本?或者我应该使用Java生成这些?哪种方法最简单?在我开始工作之前,只想了解你的意见。谢谢:))
答案 0 :(得分:1)
当然有可能,这是一个带有bash脚本的最小例子:
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
答案 1 :(得分: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
麦克