在python脚本中增加值的Shell脚本

2024-06-30 05:50:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的python脚本,我想写一个shell脚本,在脚本中增加一个特定的值(bearer\u id)(直到一个固定的值,比如100200),然后重复其他的行(下面的例子)。你能给我一些提示/或者一个shell脚本的例子,关于如何做到这一点吗?你知道吗

你知道吗脚本.py就像:

sgw.add_bearer(dpid=256, bearer_id=1, \
saddr_ingress="10.1.1.10", \
sport_ingress=2152)

最后的剧本应该是这样的,脚本.py地址:

sgwumgt.add_bearer(dpid=256, bearer_id=1, \
saddr_ingress="10.1.1.10", \
sport_ingress=2152)

sgwumgt.add_bearer(dpid=256, bearer_id=2, \
saddr_ingress="10.1.1.10", \
sport_ingress=2152)
.
.#repeat 99 times
.
sgwumgt.add_bearer(dpid=256, bearer_id=100, \
saddr_ingress="10.1.1.10", \
sport_ingress=2152)

注意:这必须是一个单独的shell脚本,我在远程机器上通过ssh执行它(它有这个python脚本,可以执行),然后这个shell脚本必须创建一个新的.py文件,如我上面提到的,或者以这种方式更改现有的文件,以便进一步执行。你知道吗

提前多谢了


Tags: 文件py脚本addidshell例子剧本
2条回答

如果唯一改变的是承载id,那么可以使用for循环

比如:

for id in range(1,101):
    sgw.add_bearer(dpid=256, bearer_id=id, \
    saddr_ingress="10.1.1.10", \
    sport_ingress=2152)

这将大大减少您需要编写的代码量,并使以后修改代码更加容易。你知道吗

循环构造的存在正是为了解决这个问题:

max_id = 100
for id in range(1, max_id+1):
    sgwumgt.add_bearer(dpid=256, bearer_id=id,
                       saddr_ingress="10.1.1.10",
                       sport_ingress=2152)

如果你不知道你能做到这一点,那么你真的应该花一些时间与一些python教程,因为这是一个非常基本的构建块编写python代码。你知道吗

如果python脚本必须基于命令行参数更改行为,那么您有几个选项。您可以使用argparse或类似的工具,也可以使用sys.argv快速地执行一些操作。有一种方法可以用sys.argv实现这一点:

import sys
if(len(sys.argv)) == 1:
    max_id == 100 #Default case
elif(len(sys.argv)) == 2:
    max_id = int(sys.argv[1])

然后您可以在命令行上用python script.py 150调用它,它将max_id设置为150。如果需要进行更复杂的参数解析,我建议使用argparse。你知道吗

相关问题 更多 >