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

时间:2015-12-03 18:10:30

标签: python shell

我有一个简单的python脚本,我想写一个shell脚本来逐步增加脚本内的特定值(bearer_id)(直到固定值,如100,200),并重复其他行,就像他们是(例如下面)。你可以给我一些提示/或shell脚本的例子,关于如何做到这一点?

script.py就像:

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

最终脚本应该是这样的,script.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)

ps:这必须是一个单独的shell脚本,我通过远程机器上的ssh执行它(有这个python脚本,准备执行)然后这个shell脚本必须创建一个新的.py文件,如我所提到的以上或以此方式更改现有的步骤以进行进一步的步骤。

提前多多感谢

2 个答案:

答案 0 :(得分:1)

如果唯一改变的是bearer_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)

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

答案 1 :(得分:0)

存在循环结构来解决您遇到的这个问题:

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