我有一个简单的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文件,如我所提到的以上或以此方式更改现有的步骤以进行进一步的步骤。
提前多多感谢
答案 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
。